Defined in: rate-limiter.ts:47
Options for configuring a rate-limited function
• TFn extends AnyFunction
optional enabled: boolean | (rateLimiter) => boolean;
optional enabled: boolean | (rateLimiter) => boolean;
Defined in: rate-limiter.ts:52
Whether the rate limiter is enabled. When disabled, maybeExecute will not trigger any executions. Defaults to true.
optional initialState: Partial<RateLimiterState>;
optional initialState: Partial<RateLimiterState>;
Defined in: rate-limiter.ts:56
Initial state for the rate limiter
optional key: string;
optional key: string;
Defined in: rate-limiter.ts:61
Optional key to identify this rate limiter instance. If provided, the rate limiter will be identified by this key in the devtools and PacerProvider if applicable.
limit: number | (rateLimiter) => number;
limit: number | (rateLimiter) => number;
Defined in: rate-limiter.ts:66
Maximum number of executions allowed within the time window. Can be a number or a callback function that receives the rate limiter instance and returns a number.
optional onExecute: (args, rateLimiter) => void;
optional onExecute: (args, rateLimiter) => void;
Defined in: rate-limiter.ts:70
Callback function that is called after the function is executed
Parameters<TFn>
RateLimiter<TFn>
void
optional onReject: (rateLimiter) => void;
optional onReject: (rateLimiter) => void;
Defined in: rate-limiter.ts:74
Optional callback function that is called when an execution is rejected due to rate limiting
RateLimiter<TFn>
void
window: number | (rateLimiter) => number;
window: number | (rateLimiter) => number;
Defined in: rate-limiter.ts:79
Time window in milliseconds within which the limit applies. Can be a number or a callback function that receives the rate limiter instance and returns a number.
optional windowType: "fixed" | "sliding";
optional windowType: "fixed" | "sliding";
Defined in: rate-limiter.ts:86
Type of window to use for rate limiting
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.