@adt-it/rate-limiter

1.1.0 • Public • Published

rate-limiter

toolbox for express boilerplate functions

Usage Example

const clsRateLimiter = require('@adt-it/rate-limiter');
let rateLimiter = new clsRateLimiter(10, 60); //max 10 requests every 10 seconds

app.use(async (req, res, next)=>{
	if(rateLimiter.log(req.validatedClientIp)){
		return next(new httpError('over quota', 429));
	}
});

Doc

Table of Contents

RateLimiter

Create with parameters limit and timespanS

Parameters

  • limit integer
  • timespanS integer

log

logs a request from source for timespanS seconds

Parameters
  • source string
  • timespanS integer , defaults to defaultTimespanS
  • limit integer , defaults to defaultLimit

Returns Boolean returns this.check(source, limit)

check

Parameters
  • source string
  • limit integer , defaults to defaultLimit

Returns Boolean returns true if limit is exeeded

get

Returns used quota of source

Parameters

Returns integer used quota

getDiff

returns difference from quota used by source to limit

Parameters
  • source string
  • limit integer , defaults to defaultLimit

Returns integer

Package Sidebar

Install

npm i @adt-it/rate-limiter

Weekly Downloads

1

Version

1.1.0

License

UNLICENSED

Unpacked Size

4.71 kB

Total Files

3

Last publish

Collaborators

  • tbessenreither