@canmertinyo/rate-limiter-core
Version:
A simple rate-limiting middleware for Express.js with support for in-memory, Redis, and MongoDB storage
14 lines (12 loc) • 465 B
text/typescript
import { RateLimitRecord } from "./rate-limit-record.interface";
export interface RateLimiter {
initialize(): Promise<RateLimiter>;
getRateLimitRecord(key: string): Promise<RateLimitRecord | undefined>;
createRateLimitRecord(record: RateLimitRecord): Promise<RateLimitRecord>;
updateRateLimitRecord(
key: string,
timestamp: number,
count: number
): Promise<RateLimitRecord>;
increment(key: string): Promise<RateLimitRecord>;
}