forked from express-rate-limit/express-rate-limit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
39 lines (27 loc) · 951 Bytes
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import {RequestHandler, Request, Response, NextFunction} from 'express';
export interface Options {
max?: number;
message?: any;
headers?: boolean;
windowMs?: number;
store?: Store | any;
statusCode?: number;
skipFailedRequests?: boolean;
skipSuccessfulRequests?: boolean;
skip?(req?: Request, res?: Response): boolean;
onLimitReached?(req?: Request, res?: Response): void;
handler?(req: Request, res: Response, next?: NextFunction): void;
keyGenerator?(req: Request, res?: Response): string | Request['ip'];
}
export interface Store {
hits: {
[key: string]: number;
};
resetAll(): void;
resetTime: number;
setInterval: NodeJS.Timeout;
resetKey(key: string | any): void;
decrement(key: string | any): void;
incr(key: string | any, cb: (err?: Error, hits?: number) => void): void;
}
export default function RateLimit(options?: Options): (req: Request, res: Response, next: NextFunction) => void;