Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/keneucker/biketag-api
The javascript client for interacting with BikeTag games.
https://github.com/keneucker/biketag-api
api game gunjs isomorphic-javascript reddit sanity-io twitter typescript typescript-library
Last synced: 3 months ago
JSON representation
The javascript client for interacting with BikeTag games.
- Host: GitHub
- URL: https://github.com/keneucker/biketag-api
- Owner: KenEucker
- License: agpl-3.0
- Created: 2021-04-01T16:07:01.000Z (almost 4 years ago)
- Default Branch: production
- Last Pushed: 2024-01-24T17:13:57.000Z (12 months ago)
- Last Synced: 2024-05-01T22:12:13.153Z (9 months ago)
- Topics: api, game, gunjs, isomorphic-javascript, reddit, sanity-io, twitter, typescript, typescript-library
- Language: TypeScript
- Homepage: https://keneucker.github.io/biketag-api/
- Size: 17.9 MB
- Stars: 10
- Watchers: 3
- Forks: 4
- Open Issues: 12
-
Metadata Files:
- Readme: readme.md
- Contributing: contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: code_of_conduct.md
Awesome Lists containing this project
README
biketag
BikeTag Official JavaScript library
## Installation
_This package is Isomorphic and Typescript ready_`npm install biketag`
## How to include it in your projects
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.
### Browser
Using jsDelivr CDN:
```html
```
Using unpkg CDN:
```html
```
### CommonJS
import/require the module:
```ts
// Using import statement
import { BikeTagClient } from 'biketag'
``````js
// Using require()
const { BikeTagClient } = require('biketag')
```---
## Usage
### Instantiate with or without credentials (browser):
```js
// 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,
})
```### Instantiate with or without credentials (node):
```ts
// 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,
}
})
```### Configuration
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:
### **⚠️ For brevity, the rest of the examples will leave out the import and/or instantiation step.**
### Get Game Information
You can get game information by providing the name.
```ts
// retrieves the BikeTag game data 'portland' game
const biketagPortland = await client.game('portland')
```### Get Tags
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):
```ts
// 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' })```
### Get Players
You can get the players of a game by calling getPlayers
```ts
// retrieves the BikeTag player data 'portland' game
const biketagPortlandPlayers = await biketagAPI.getPlayers('portland')
```## Credits
This project is heavily influenced by the [node-imgur][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][github], [Patreon][patreon], or directly by going out and playing a round of [BikeTag in your city](https://biketag.org)!
[github]: https://github.com/sponsors/KenEucker
[patreon]: https://patreon.com/BikeTag
[node-imgur]: https://github.com/kaimallea/node-imgur
[sanity]: https://www.sanity.io/docs/api-versioning
[imgur]: https://www.npmjs.com/package/imgur/v/next![Alt](https://repobeats.axiom.co/api/embed/efea76b8d7f37062fcded362417a369dc9a3a401.svg "Repobeats analytics image")
## Vendors
Images powered by imgur.com
[![imgur.com][imgur-image]](https://apidocs.imgur.com/)
Structured Content powered by sanity.io
[![sanity.io][sanity-image]](https://www.sanity.io/docs/http-api)
[biketag-logo]: https://raw.githubusercontent.com/keneucker/biketag-website/production/public/img/biketag-api-logo.jpg
[imgur-image]: https://raw.githubusercontent.com/keneucker/biketag-website/production/public/img/imgur-logo.png
[sanity-image]: https://raw.githubusercontent.com/keneucker/biketag-website/production/public/img/sanity-logo.png