0.0.0 • Published 3 years ago

suri-rali v0.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

susi-rali

NPM

NodeJs Super Simple Rate Limiter : susi-rali.

This tool offers a way to rate limit a given action acting as client point of view. (In state this project is not designed to apply to rate limit server handlers and return 429 error for example)

Features

  • limitedCall - rate limited business promise method with result.

Susi super limitations:

  • BETA: this project is in beta state. limit have not yet been evaluated. Input validation is light
  • dont scale up: as this project dont yet rely on shared storage (ex. db or redis), usage must be limited to one instance.

Quick start

install susi-rali

npm install susi-rali

then let's go:

const SusiRali = require('susi-rali')
const windowsMs=1000;
const maxQueryPerWindow=10;
const susi = new SusiRali({windowsMs, maxQueryPerWindow});

await susi.limitedCall(() => businessCode("businessArg"))
         .then((businessResolved)=>console.log(">" + businessResolved));

Advanced usage

SusiRali options

This section describes SusiRali available options.

Note about options precedence: first take option value from constructor if any, or else apply default value.

  • windowsMs : Rate limit windows size in milliseconds - optional with default value: 1000
  • maxQueryPerWindow : Rate limit max query per windows size - optional with default value: 10

How to contribute

You're not a dev ? just submit an issue (bug, improvements, questions). Or else:

  • Clone
  • Install deps
  • Then mocha tests
git clone https://github.com/creharmony/susi-rali.git
cd susi-rali
npm install
# play tests
npm run test
  • you could also fork, feature branch, then submit a pull request.

Services or activated bots

badgenamedescription
CI/CDGithub actionsContinuous tests.
HoundciJavaScript automated review (configured by .hound.yml)
0.0.0

3 years ago