UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

26 lines (25 loc) 948 B
/** * @module RateLimiter */ import { type MiddlewareFn } from "../../../middleware/contracts/_module.js"; import { type IRateLimiterFactoryBase } from "../../../rate-limiter/contracts/_module.js"; import { type ErrorPolicy, type Invokable } from "../../../utilities/_module.js"; /** * @group Middleware */ export type RateLimiterMiddlewareSettings<TParameters extends Array<unknown> = Array<unknown>> = ErrorPolicy & { /** * @default * ```ts * (...args) => JSON.stringify(args) * ``` */ key?: Invokable<TParameters, string>; onlyError?: boolean; limit: number; }; /** * IMPORT_PATH: `"@daiso-tech/core/rate-limiter/middlewares"` * @group Middleware */ export declare function rateLimiterMiddlewareFactory(rateLimiterFactory: IRateLimiterFactoryBase): <TParameters extends Array<unknown>, TReturn>(settings: RateLimiterMiddlewareSettings<TParameters>) => MiddlewareFn<TParameters, Promise<TReturn>>;