UNPKG

@mgiamberardino/rate-limiter

Version:
34 lines (33 loc) 861 B
export interface RateLimiterStoreAdapter { resetAll(): void; increment(key: string): number; } export interface KeyMapper { (req: any): string; } export interface RateLimiterOptions { requestsLimit?: number; timeWindow?: number; keyMapper: KeyMapper; store?: RateLimiterStoreAdapter; } export declare class RateLimiter { static readonly DEFAULT_REQUESTS_LIMIT: number; static readonly DEFAULT_TIME_WINDOW: number; static readonly DEFAULT_OPTIONS: { requestsLimit: number; timeWindow: number; }; private options; private store; private isRunning; private timeoutId; constructor(options: RateLimiterOptions); private cyclicReset(); start(): void; stop(): void; skip(req: any): boolean; isValid(req: any): boolean; reset(): void; } export default RateLimiter;