UNPKG

nest-ratelimiter

Version:

Distributed consistent flexible NestJS rate limiter based on Redis

19 lines (18 loc) 810 B
import { LimiterInfo } from 'ratelimiter'; import { RateLimiterParams } from './params'; import { RequireField } from './utils/require-field'; export declare const RATE_LIMITER_ASSERTER_TOKEN: unique symbol; export interface RateLimiterAsserter { /** * Asserts that the request is not rate limited. If the request is rate * limited, throws an exception. Otherwise, returns the limiter info. * @param params The parameters for the rate limiter. * @returns The limiter info. * @throws `RateLimiterError` If the request is rate limited. */ assert(params: RequireField<RateLimiterParams, 'id'>): Promise<LimiterInfo>; } export declare class RateLimiterError extends Error { readonly limiterInfo: LimiterInfo; constructor(message: unknown, limiterInfo: LimiterInfo); }