UNPKG

@casoon/auditmysite

Version:

A comprehensive command-line tool for automated accessibility, security, performance, and SEO testing using Playwright and pa11y, based on sitemap URLs

69 lines 2.06 kB
import { EventEmitter } from 'events'; export interface ThrottleConfig { requestsPerSecond?: number; requestsPerMinute?: number; concurrentRequests?: number; delayBetweenRequests?: number; burstLimit?: number; burstWindow?: number; enableBackoff?: boolean; backoffMultiplier?: number; maxBackoffDelay?: number; } export interface ThrottleStats { totalRequests: number; successfulRequests: number; throttledRequests: number; failedRequests: number; averageResponseTime: number; currentConcurrentRequests: number; requestsInLastSecond: number; requestsInLastMinute: number; lastRequestTime?: Date; isThrottling: boolean; } export interface ThrottleRequest { id: string; url: string; method: string; timestamp: Date; priority: number; retryCount: number; maxRetries: number; } export declare class NetworkThrottler extends EventEmitter { private config; private requestQueue; private activeRequests; private requestHistory; private stats; private isThrottling; private lastRequestTime; private burstCount; private burstStartTime; private backoffDelay; constructor(config?: ThrottleConfig); throttleRequest<T>(requestFn: () => Promise<T>, url: string, method?: string, priority?: number, maxRetries?: number): Promise<T>; private addToQueue; private waitForSlot; private canExecuteRequest; private executeRequest; private updateStats; private updateCurrentRates; private recordRequestSuccess; private recordRequestFailure; private cleanupHistory; private delay; getStats(): ThrottleStats; getQueueSize(): number; getActiveRequests(): number; getThrottlingStatus(): boolean; updateConfig(newConfig: Partial<ThrottleConfig>): void; clearQueue(): void; pauseThrottling(): void; resumeThrottling(): void; getConfig(): ThrottleConfig; resetStats(): void; cleanup(): Promise<void>; } //# sourceMappingURL=network-throttler.d.ts.map