@kitstack/nest-powertools
Version:
A comprehensive collection of NestJS powertools, decorators, and utilities to supercharge your backend development
27 lines (26 loc) • 807 B
TypeScript
import { type CanActivate, type ExecutionContext } from '@nestjs/common';
import type { RateLimitOptions } from '../types';
export declare class RateLimitGuard implements CanActivate {
private options;
private requests;
constructor(options?: RateLimitOptions & {
strategy?: 'delay' | 'reject';
delayAfter?: number;
delayMs?: number;
maxDelayMs?: number;
delayMultiplier?: number;
});
canActivate(context: ExecutionContext): Promise<boolean>;
private handleRejectStrategy;
private handleDelayStrategy;
private sleep;
private getKey;
getStatus(request: any): {
requests: number;
remaining: number;
resetTime: number;
resetIn: number;
strategy: string;
willDelay: boolean;
};
}