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

challonge-ts

v0.0.2

Published

Challonge API interface

Downloads

21

Readme

Challonge Typescript API Interface

An overdone Challonge API interface and adapter, written with Typescript but should work in ES6+ too.

Using the adapter

The adapter is a direct stateless interface with Challonge, with no frills, you're calling the Challonge API directly.

Example - Retrieving a list of tournaments with the TournamentAdapter

The following returns the direct raw response from the Challonge API

import { TournamentAdapter } from 'challonge-ts';

const test = async () => {
  const data = await TournamentAdapter.index('api_key');

  console.log(data);
}

test(); // Direct response from the API, array of tournament JSON objects

Due to the direct nature of these adapters, I recommend looking at both the Challonge API documentation for the routes, and the ChallongeTS documentation

Using the class

Devised as a nicer abstraction over the adapter, this is a set of classes which wrap the adapter in a more OO type way, if that's your thing.

Example - Retrieving a list of tournaments with the Challonge class

import { Challonge } from 'challonge-ts';

const test = async () => {
  const challonge = new Challonge('api_key')
  const tournaments = await challonge.getTournaments();

  console.log(tournaments); // Array of Tournament objects
}

test();

Running the tests

The tests for this are written using Jest, and uses Nock Record to stub the API requests to Challonge. To run them do the following:

  1. Create an api_key.txt file in the tests folder, containing an api key which matches the nock files if running offline, or your live api key if regenerating the nock files. In the case of the master branch, the file should just contain test_api_key
  2. Run npm test in the console.

To regenerate the API nock files, delete the tests/adapter/__nock-fixtures__ folder and re-run the tests. With a valid API key, the files should be regenerated. Once the tests pass and the files have been generated, remember to do a find and replace for your API key to test_api_key to ensure you don't push your public Challonge API key to a public repo!

Building

Ensure you have gulp-cli installed locally, then run npm run build. Hopefully it goes all right with no errors! :)

Merging with master

After you have run the tests, and built the project, your repo should be good to go for merging with master!