@developers-joyride/rate-limiter
Version:
A flexible rate limiting library with TypeScript support, Express middleware, and NestJS guard/interceptor capabilities
37 lines (36 loc) • 1.03 kB
TypeScript
import { Request } from "express";
import { RateLimiterConfig, RateLimitResult, RateLimitInfo } from "../interfaces/rate-limiter.interface";
export declare class RateLimiterService {
private config;
private cacheProvider;
private isInitialized;
constructor(config: RateLimiterConfig);
/**
* Initialize the cache provider
*/
initialize(): Promise<void>;
/**
* Check if a request is allowed based on rate limiting rules
*/
checkLimit(req: Request): Promise<RateLimitResult>;
/**
* Reset rate limit for a specific key
*/
resetLimit(key: string): Promise<void>;
/**
* Get current rate limit info for a key
*/
getLimitInfo(key: string): Promise<RateLimitInfo | null>;
/**
* Ensure cache provider is initialized
*/
private ensureInitialized;
/**
* Close the cache provider connection
*/
close(): Promise<void>;
/**
* Get the current configuration
*/
getConfig(): Required<RateLimiterConfig>;
}