diff --git a/types/express-rate-limit/express-rate-limit-tests.ts b/types/express-rate-limit/express-rate-limit-tests.ts index 6be714f3bf..aa5c51a016 100644 --- a/types/express-rate-limit/express-rate-limit-tests.ts +++ b/types/express-rate-limit/express-rate-limit-tests.ts @@ -6,6 +6,15 @@ const apiLimiter = new RateLimit({ delayMs: 0 // disabled }); +const apiLimiterWithMessageObject = new RateLimit({ + windowMs: 15 * 60 * 1000, // 15 minutes + max: 100, + message: { + status: 429, + message: 'To many requests, try again later' + } +}); + const createAccountLimiter = new RateLimit({ windowMs: 60 * 60 * 1000, // 1 hour window delayAfter: 1, // begin slowing down responses after the first request diff --git a/types/express-rate-limit/index.d.ts b/types/express-rate-limit/index.d.ts index 32799cc842..b3f074f28d 100644 --- a/types/express-rate-limit/index.d.ts +++ b/types/express-rate-limit/index.d.ts @@ -15,6 +15,12 @@ declare namespace RateLimit { resetKey(key: string): void; } + interface Message { + status: number; + message: string; + [key: string]: any; + } + interface Options { delayAfter?: number; delayMs?: number; @@ -22,7 +28,7 @@ declare namespace RateLimit { headers?: boolean; keyGenerator?(req: express.Request, res: express.Response): string; max?: number; - message?: string; + message?: string | Buffer | Message; skip?(req: express.Request, res: express.Response): boolean; skipFailedRequests?: boolean; statusCode?: number;