Installation
npm install --save @types/ratelimiter
Summary
This package contains type definitions for ratelimiter (https://github.com/tj/node-ratelimiter).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ratelimiter.
index.d.ts
interface RedisClient {
multi(operations: any[][]): { exec(cb: (err: any, res: any) => unknown): void };
}
declare class Limiter {
constructor(opts: Limiter.LimiterOption);
/**
* Inspect implementation
*/
inspect(): string;
/**
* Get values and header / status code and invoke `fn(err, info)`.
*/
get(fn: (err: any, info: Limiter.LimiterInfo) => void): void;
}
declare namespace Limiter {
interface LimiterOption {
/**
* The identifier to limit against (typically a user id)
*/
id: string;
/**
* Redis connection instance
*/
db: RedisClient;
/**
* Max requests within duration
* @default 2500
*/
max?: number | undefined;
/**
* Duration of limit in milliseconds
* @default 3600000
*/
duration?: number | undefined;
}
/**
* Result Object
*/
interface LimiterInfo {
/**
* `max` value
*/
total: number;
/**
* number of calls left in current `duration` without decreasing current `get`
*/
remaining: number;
/**
* time since epoch in seconds at which the rate limiting period will end (or already ended)
*/
reset: number;
/**
* time since epoch in milliseconds at which the rate limiting period will end (or already ended)
*/
resetMs: number;
}
}
export = Limiter;
Additional Details
- Last updated: Tue, 07 Nov 2023 09:09:39 GMT
- Dependencies: none
Credits
These definitions were written by Aya Morisawa, and Piotr Błażejewicz.