Socket
Socket
Sign inDemoInstall

@tinyhttp/rate-limit

Package Overview
Dependencies
4
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @tinyhttp/rate-limit

Basic IP rate-limiting middleware for tinyhttp. Use to limit repeated requests to public APIs and/or endpoints such as password reset.


Version published
Weekly downloads
55
increased by266.67%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

@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

Keywords

FAQs

Last updated on 06 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc