@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
text/typescript
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;
}