UNPKG

@canmertinyo/rate-limiter-core

Version:

A simple rate-limiting middleware for Express.js with support for in-memory, Redis, and MongoDB storage

28 lines (26 loc) 1.04 kB
import { ExpressCallback } from "./express-callback.interface"; import { Handler } from "./handler.interface"; import { RateLimiter } from "./rate-limiter.interface"; /** * Options for the rate limiter configuration. * * @property ms - The time window in milliseconds for rate limiting. * @property maxRequest - The maximum number of allowed requests. * @property storage?(optional) - The storage property allows you to use a specific storage manager. [REDIS,MONGO, DEFAULT=INMEMORY] */ export interface RateLimiterOptions { ms: number; maxRequest: | number | ExpressCallback<number> | Promise<ExpressCallback<number>>; storage?: RateLimiter; message?: any; statusCode?: number; handler?: Handler; keyGenerator?: ExpressCallback<string> | Promise<ExpressCallback<string>>; skip?: ExpressCallback<boolean> | Promise<ExpressCallback<boolean>>; requestPropertyName?: string; errorHandler?: ExpressCallback<void> | Promise<ExpressCallback<void>>; passOnStoreError?: boolean; }