@checkfirst/nestjs-outlook
Version:
An opinionated NestJS module for Microsoft Outlook integration that provides easy access to Microsoft Graph API for emails, calendars, and more.
35 lines (34 loc) • 1.19 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
export declare class GraphRateLimiterService implements OnModuleInit {
private readonly logger;
private readonly MAX_REQUESTS_PER_SECOND;
private readonly MAX_REQUESTS_PER_10_MINUTES;
private readonly ONE_SECOND_MS;
private readonly TEN_MINUTES_MS;
private readonly INACTIVE_USER_THRESHOLD_MS;
private readonly userLimiters;
private totalPermitsAcquired;
private totalWaitTime;
private cooldownCount;
onModuleInit(): void;
acquirePermit(userId: string): Promise<void>;
releasePermit(userId: string): void;
handleRateLimitResponse(userId: string, retryAfterSeconds: number): void;
private canMakeRequest;
private initializeLimiter;
private cleanupInactiveUsers;
getStats(): {
activeUsers: number;
totalPermitsAcquired: number;
totalWaitTimeMs: number;
averageWaitTimeMs: number;
cooldownCount: number;
};
getUserStats(userId: string): {
userId: string;
recentRequestCount: number;
tenMinuteRequestCount: number;
cooldownUntil: number | null;
lastActivity: string;
} | null;
}