@casoon/auditmysite
Version:
A comprehensive command-line tool for automated accessibility, security, performance, and SEO testing using Playwright and pa11y, based on sitemap URLs
60 lines • 1.74 kB
TypeScript
import { Browser, BrowserContext, Page } from 'playwright';
export interface WorkerPoolOptions {
maxWorkers?: number;
browserType?: 'chromium' | 'firefox' | 'webkit';
headless?: boolean;
timeout?: number;
viewport?: {
width: number;
height: number;
};
userAgent?: string;
enableResourceMonitoring?: boolean;
maxMemoryUsage?: number;
maxCpuUsage?: number;
}
export interface Worker {
id: number;
browser: Browser;
context: BrowserContext;
page: Page;
isBusy: boolean;
currentUrl?: string;
startTime?: Date;
memoryUsage: number;
cpuUsage: number;
}
export interface WorkerStats {
totalWorkers: number;
busyWorkers: number;
idleWorkers: number;
averageMemoryUsage: number;
averageCpuUsage: number;
totalMemoryUsage: number;
totalCpuUsage: number;
}
export declare class WorkerPool {
private workers;
private options;
private isInitialized;
private workerIdCounter;
constructor(options?: WorkerPoolOptions);
initialize(): Promise<void>;
private createBrowser;
private createWorker;
getAvailableWorker(): Promise<Worker | null>;
releaseWorker(worker: Worker): Promise<void>;
executeTask<T>(task: (worker: Worker) => Promise<T>, url?: string): Promise<T>;
private monitorResources;
getStats(): WorkerStats;
getWorkerById(id: number): Worker | undefined;
getBusyWorkers(): Worker[];
getIdleWorkers(): Worker[];
resizePool(newSize: number): Promise<void>;
private destroyWorker;
cleanup(): Promise<void>;
getInitializationStatus(): boolean;
getMaxWorkers(): number;
setMaxWorkers(max: number): void;
}
//# sourceMappingURL=worker-pool.d.ts.map