2.1.5 • Published 5 months ago
@tinyhttp/rate-limit v2.1.5
@tinyhttp/rate-limit
Basic rate-limiting middleware for tinyhttp. Used to limit repeated requests to public APIs and/or endpoints such as password reset.
Install
pnpm i @tinyhttp/rate-limit
Usage
import { App } from '@tinyhttp/app'
import { rateLimit } from '@tinyhttp/rate-limit'
new App().get('limited-route', rateLimit({ max: 10, windowMs: 60 * 1000 /* 1 minute */ }), (_, res) =>
res.send('Limited route')
)
Options
Name | Type | Default | Description |
---|---|---|---|
windowMs | number | 5000 | Timeframe for which requests are checked/remembered. |
max | number | ((req: Request, res: Response) => Promise) | 5 | Max number of connections during windowMs before sending a 429 response. |
message | string | Too many requests, please try again later. | Error message sent to user when max is exceeded. |
statusCode | number | 429 | HTTP status code returned when max is exceeded. |
skipFailedRequests | boolean | false | When set to true, failed requests won't be counted. |
skipSuccessfulRequests | boolean | false | When set to true successful requests (response status < 400) won't be counted. |
keyGenerator | (req: Request, res: Response) => string | (req) => req.ip | Function used to generate keys. |
shouldSkip | (req: Request, res: Response) => boolean | () => false | Determine per request if it should be skipped by the middleware |
onLimitReached | onLimitReached: (req: Request, res: Response) => void | () => {} | Function that is called the first time a user hits the rate limit within a given window. |
store | Store | MemoryStore | By default a MemoryStore is used. Rate Limit Redis, Rate Limit Memcached and Rate Limit Mongo can be used too. |
Alternatives
2.1.5
5 months ago
2.1.4
10 months ago
2.1.3
1 year ago
2.1.2
2 years ago
2.1.1
2 years ago
2.0.11
2 years ago
2.0.10
2 years ago
2.1.0
2 years ago
2.0.9
2 years ago
2.0.8
3 years ago
2.0.7
3 years ago
2.0.6
3 years ago
2.0.5
3 years ago
2.0.4
4 years ago
2.0.3
4 years ago
2.0.2
4 years ago
2.0.1
4 years ago
2.0.0
4 years ago
1.3.3
4 years ago
1.3.2
4 years ago
1.3.1
4 years ago
1.3.0
4 years ago
1.2.4
4 years ago
1.2.3
4 years ago
1.2.2
4 years ago
1.2.1
4 years ago
1.2.0
4 years ago
1.1.1
4 years ago
1.1.0
5 years ago
1.0.4
5 years ago
1.0.3
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago
0.5.5
5 years ago
0.5.4
5 years ago
0.5.3
5 years ago
0.5.2
5 years ago
0.5.1
5 years ago
0.5.0
5 years ago
0.4.3
5 years ago
0.4.2
5 years ago
0.4.1
5 years ago
0.4.0
5 years ago