npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

punkapi-javascript-wrapper

v1.0.2

Published

A Javascript wrapper for the PunkAPI

Downloads

7

Readme

PunkAPI Javascript Wrapper

A JS wrapper for the BrewDog Punk API V2 - an API for retrieving data about BrewDog's beers built by @samjbmason.

Installation

There are 3 ways to install the PunkAPI Javascript Wrapper.

Clone

Clone this repo into your project with:

git clone https://github.com/brettdewoody/punkapi-javascript-wrapper.git

NPM / Yarn

Install via npm or yarn with:

npm install --save punkapi-javascript-wrapper

or

yarn add punkapi-javascript-wrapper

Bower

Install via bower with:

bower install punkapi-javascript-wrapper

Usage

There are several ways the wrapper can be used. The wrapper is available as a library script (option #1), can be imported with Webpack into a bundled script for the browser (option #2), or can be imported into Node (option #3).

Library (Option #1)

Include the compiled library script on your page with:

<script type="text/javascript" src="/path/to/punkapi-javascript-wrapper/dist/punkapi-javascript-wrapper.js"></script>

Then create a new instance of the PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Webpack for the Browser (Option #2)

Import PunkAPIWrapper in your entry file with

const PunkAPIWrapper = require('/path/to/punkapi-javascript-wrapper/src/punkapi-javascript-wrapper.js')

Then create a new instance of PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Finally webpack your code using your Webpack config.

Node (Option #3)

The same implementation as Option #2.

Import PunkAPIWrapper in your entry file with

const PunkAPIWrapper = require(punkapi-javascript-wrapper)

Then create a new instance of PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Here's a Glitch demo showing how to use the wrapper in Node and the results:

Methods

The wrapper provides 5 methods for retrieving all the BrewDog-related info you want:

Note: All methods query the BrewDog Punk API using an asynchronous fetch request and return a Promise. This means you'll need to use .then() to wait for the response and provide a callback for handling the returned data.

const punkAPI = new PunkAPIWrapper()

const randomBeer = PunkAPI.getRandom()

randomBeer.then(beer => {
  alert(beer[0].name)
})

getBeer(:id)

Returns an array of length 1 with the beer matching an ID of :id. :id should be a number corresponding to the ID of the desired beer.

Example: const beer1 = punkAPI.getBeer(1)

getBeers(:options)

Returns an array with beers matching the :options. :options is an object consisting of available filters (below).

Example: const strongBeers = punkAPI.getBeers({'abv_gt': 8})

For the most up-to-date filters please see the PunkAPI docs.

getRandom()

Returns an array of length 1 with a random beer

Example: const randomBeer = punkAPI.getRandom()

getRateLimit()

Returns a number displaying the rate limit. This is currently set to 3600 requests per hour per IP address.

Example: const rateLimit= punkAPI.getRateLimit()

getRateLimitRemaining()

Returns a number displaying the available number of requests remaining for this IP address.

Example: const rateLimitRemaining= punkAPI.getRateLimitRemaining()

Examples

Get a random beer

const randomBeer = PunkAPI.getRandom()

randomBeer.then(beer => {
  alert(beer[0].name)
})

Get strong beers

const strongBeers = PunkAPI.getBeers({'abv_gt': 8})

strongBeers.then(beers => {
  beers.forEach(beer => {
    alert(beer.name)
  })
})

Get remaining request limit const remainingRequests = PunkAPI.getRateLimitRemaining()

remainingRequests.then(requests => {
  alert(requests)
})

Contributing

Please see the Contributing Guide.

License

This project is licensed under the terms of the MIT license.