Giter Site home page Giter Site logo

chocolatenao / stratz.js Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 329 KB

📦 A Minimalistic Node.js STRATZ REST API Wrapper

Home Page: https://www.npmjs.com/package/stratz.js

License: MIT License

TypeScript 98.94% Shell 1.06%
api-wrapper dota2 stratz dota2-api rest-api dota-rest-api

stratz.js's Introduction

stratz.js

About

A Minimalistic Node.js STRATZ REST API Wrapper.

  • Covers 100% of the 36 STRATZ REST API endpoints.
  • 0 dependencies.
  • Promise-based.
  • Fully documented and tested.
  • Strong type system.

Features

  • A Variety of Game Data Depending on Different Game Versions, Incuding:

    • Heroes
    • Abilities
    • Items
    • Game Versions
  • Player and Match Data by Steam ID.

  • eSports Leagues Data, Including:

    • Tournaments
    • Players
    • Matches
  • Query Search

  • Utility Methods

  • Descriptive Type System

Installation

Node.js 18 or newer is required.

Install it locally in your project folder:

npm install stratz.js
# Or Yarn
yarn add stratz.js
# Or pnpm
pnpm add stratz.js

Example

Firstly, create an instance of the main class:
Note: This requires an API key. You can get yours for free at STRATZ website.

const { Stratz } = require('stratz.js');
// this library supports both CJS and ESM modules:
// import { Stratz } from 'stratz.js';

const apiToken = 'YOUR_API_TOKEN';

const stratz = new Stratz(apiToken);

All methods will return a promise. Be sure to handle them accordingly, for example:

// Use "then" syntax
stratz.getPlayer(282424658)
    .then((result) => {
        console.log(result);
    })
    .catch((error) => {
        console.error('Error:', error);
    });

// Use acync/await syntax
async function printPlayerInfo() {
    const result = await stratz.getPlayer(282424658);
    console.log(result);
}

// Will return:
// {
//   identity: {
//     name: 'Voodoo Daddy',
//     feedLevel: 0,
//     emailLevel: 0,
//     ...
//     behaviorScore: 10000,
//     steamAccountId: 282424658,
//     isFollowed: false
//     }
// }

// Handling queryParameters
stratz.getPlayerSummary(282424658, { gameMode: 2 }) // in a form of an object
.then((result) => {
    console.log(result);
})
.catch((err) => {
    console.log(err);;
});

// Handling errors. All errors will match the HttpExceptionBody type
try {
  const data = await api.getPlayer(121212);
  console.log(data);
} catch (error) {
  const e = error as HttpExceptionBody;
  console.log(e);
}
// {
//   isError: true,
//   status: 204,
//   message: 'No Content',
//   description: 'The request was processed but no content was found with given parameters'
// }

Development

First of all, clone the repository and install dev-dependencies with npm install (or pnpm install or yarn install). To run tests, you will need an API key:

# copy and edit the .env file
cp .env.example .env
nano .env

# launch tests
npm run test

Building

You can create a production version of the library with the following command.

Note: This will also create a new documentation file.

npm run build:docs

In case if you want only to either compile or make the documentation file:

# for documentation
npm run docs

# for compilation
npm run build

License

MIT

This project is not affiliated with STRARZ in any way.

stratz.js's People

Contributors

chocolatenao avatar

Stargazers

James Kent avatar MaqicXu avatar  avatar nii//&&/?? avatar hrdq avatar Pere Giménez avatar

Watchers

 avatar

Forkers

ikhsanprasetyo

stratz.js's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.