Type Alias IRateLimiterPolicy<TMetrics>

IRateLimiterPolicy: {
    getAttempts(currentMetrics: TMetrics, currentDate: Date): number;
    getExpiration(currentMetrics: TMetrics, currentDate: Date): Date;
    initialMetrics(currentDate: Date): TMetrics;
    shouldBlock(
        currentMetrics: TMetrics,
        limit: number,
        currentDate: Date,
    ): boolean;
    updateMetrics(currentMetrics: TMetrics, currentDate: Date): TMetrics;
}

The IRateLimiterPolicy contract defines the rate limiter algorithm. Note all the methods here are pure functions, meaning they should return copies and not mutate input data.

IMPORT_PATH: "@daiso-tech/core/rate-limiter/contracts"

Type Parameters

  • TMetrics = unknown

Type declaration