The library is a default export, as well as a named class export BikeTagClient
. You can retrieve it from jsDeliver or npm, and it works in both the browser and nodejs.
Using jsDelivr CDN:
<script src="https://cdn.jsdelivr.net/npm/biketag/client.js"></script>
Using unpkg CDN:
<script src="https://unpkg.com/npm/client.js"></script>
import/require the module:
// Using import statement
import { BikeTagClient } from 'biketag'
// Using require()
const { BikeTagClient } = require('biketag')
// if you have your clientKey/clientToken to retrieve an access token automatically, you can pass those in:
const client = new biketag({
game: 'portland',
clientKey: process.env.BIKETAG_CLIENT_KEY,
clientToken: process.env.BIKETAG_CLIENT_TOKEN,
})
// if you have Imgur credentials: clientId and clientSecret
const client = new BikeTagClient({
game: 'portland',
imgur: {
clientId: process.env.IMGUR_CLIENT_ID,
clientSecret: process.env.IMGUR_CLIENT_SECRET,
}
})
The BikeTag API requires only the game to be set in the configuration in order to read BikeTag data. You can read more about specific configurations in the documentation:
You can get game information by providing the name.
// retrieves the BikeTag game data 'portland' game
const biketagPortland = await client.game('portland')
You can get tags one by one or all at once for a given game using the getTag
and getTags
methods. You can also explicitely set the data adapter to any of the configurable sources (biketag, imgur, sanity):
// retrieves the BikeTag game data 'portland' game
const biketagPortland = await client.game('portland')
// retrieves the latest BikeTag posted for the 'portland' game from the most available API
const biketagPortlandCurrent = await client.getTag()
// retrieves the BikeTag #1 for the 'portland' game from imgur adapter
const biketagPortland1 = await client.tags(1, { source: 'imgur' })
// retrieves the all BikeTags for the 'portland' game from sanity adapter
const allPortlandTags = await client.tags(undefined, { source: 'sanity' })
You can get the players of a game by calling getPlayers
// retrieves the BikeTag player data 'portland' game
const biketagPortlandPlayers = await biketagAPI.getPlayers('portland')
This project is heavily influenced by the node-imgur package, the Imgur API and it's documentation, and Sanity.IO's javascript client.
Using the typescript library configured and developed on the node-imgur v2 project: https://github.com/kaimallea/node-imgur, this package comes bundled with testing using jest and automated releases using github actions. Many thanks to Kaimallea for collaborating with me on the imgur API because I learned so much along the way!
Support the BikeTag Project on GitHub, Patreon, or directly by going out and playing a round of BikeTag in your city!