2.1.2 • Published 4 months ago

@tinyhttp/rate-limit v2.1.2

Weekly downloads
83
License
MIT
Repository
github
Last release
4 months ago

@tinyhttp/rate-limit

npm (scoped) npm

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

NameTypeDefaultDescription
windowMsnumber5000Timeframe for which requests are checked/remembered.
maxnumber | ((req: Request, res: Response) => Promise)5Max number of connections during windowMs before sending a 429 response.
messagestringToo many requests, please try again later.Error message sent to user when max is exceeded.
statusCodenumber429HTTP status code returned when max is exceeded.
skipFailedRequestsbooleanfalseWhen set to true, failed requests won't be counted.
skipSuccessfulRequestsbooleanfalseWhen set to true successful requests (response status < 400) won't be counted.
keyGenerator(req: Request, res: Response) => string(req) => req.ipFunction used to generate keys.
shouldSkip(req: Request, res: Response) => boolean() => falseDetermine per request if it should be skipped by the middleware
onLimitReachedonLimitReached: (req: Request, res: Response) => void() => {}Function that is called the first time a user hits the rate limit within a given window.
storeStoreMemoryStoreBy default a MemoryStore is used. Rate Limit Redis, Rate Limit Memcached and Rate Limit Mongo can be used too.

Alternatives

2.1.2

4 months ago

2.1.1

7 months ago

2.0.11

12 months ago

2.0.10

1 year ago

2.1.0

12 months ago

2.0.9

1 year ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.5.5

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.3

4 years ago

0.4.2

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago