Skip to main content

API Reference

RateLimiter({windowMs, maxRequests})

API rate limiter that tracks requests per user and enforces limits.

Parameters:

OptionTypeDefaultDescription
windowMsnumber60000Time window in milliseconds (e.g., 60000 for 1 minute).
maxRequestsnumber5Maximum number of allowed requests per user within the time window.

Example configuration:

const config = {
windowMs: 60000, // 1 minute
maxRequests: 10, // Max 10 requests per minute
};

Returns:

1️⃣ RateLimiter Class

FunctionReturn TypeDescription
isAllowed(userId: string)booleanReturns true if the request is allowed, otherwise false if the rate limit is exceeded.
constructor(options: RateLimitOptions)RateLimiter (instance)Creates a new rate limiter instance using the provided configuration.

2️⃣ Middleware Function

FunctionReturn TypeDescription
rateLimitMiddleware(limiter: RateLimiter)(req: Request, res: Response, next: NextFunction) => voidExpress middleware that enforces rate limits. If the limit is exceeded, it returns a 429 Too Many Requests response.