Skip to main content

Function: rateLimit()

rateLimit(__namedParameters): Middleware

Defined in: rateLimit.ts:96

Koa middleware over createRateLimiter: a request over the limit is answered 429 through ctx.throw, carrying Retry-After, so an error middleware using toHttpError and applyHttpErrorHeaders keeps both.

Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds until the window ends). A key returning undefined skips the limit for that request.

When the key or the limit is only known inside the handler, use createRateLimiter directly.

Parameters​

ParameterTypeDescription
__namedParameters{ key: (ctx) => string | undefined; limit: number | ((ctx) => number); message?: string; now?: () => number; windowMs: number; }-
__namedParameters.key(ctx) => string | undefined-
__namedParameters.limitnumber | ((ctx) => number)-
__namedParameters.message?string-
__namedParameters.now?() => numberClock, for tests.
__namedParameters.windowMsnumber-

Returns​

Middleware