UNPKG

@casoon/auditmysite

Version:

Professional website analysis suite with robust accessibility testing, Core Web Vitals performance monitoring, SEO analysis, and content optimization insights. Features isolated browser contexts, retry mechanisms, and comprehensive API endpoints for profe

68 lines 2.41 kB
/** * Analysis Orchestrator for AuditMySite * * Coordinates multiple analyzers in a clean, typed way with proper * error handling and resource management. */ import { Page } from 'playwright'; import { IAnalysisOrchestrator, AnalyzerType, BaseAnalysisOptions, BaseAnalysisResult, ILogger, IAnalyzerFactory } from '../analyzers/interfaces'; export interface OrchestratorConfig { readonly analyzerFactory: IAnalyzerFactory; readonly logger: ILogger; readonly defaultTimeout: number; readonly failFast: boolean; } export interface AnalysisOptions extends BaseAnalysisOptions { readonly analyzerTypes?: AnalyzerType[]; readonly failFast?: boolean; readonly concurrency?: boolean; } export interface AnalysisResults { readonly url: string; readonly timestamp: Date; readonly totalDuration: number; readonly results: BaseAnalysisResult[]; readonly errors: AnalysisError[]; readonly successful: BaseAnalysisResult[]; readonly failed: BaseAnalysisResult[]; } export interface AnalysisError { readonly analyzerType: AnalyzerType; readonly error: string; readonly duration: number; } /** * Orchestrates analysis across multiple analyzers with proper resource management */ export declare class AnalysisOrchestrator implements IAnalysisOrchestrator { private readonly config; constructor(config: OrchestratorConfig); /** * Run analysis for a specific page */ runAnalysis(page: Page, url: string, analyzerTypes: AnalyzerType[], options?: AnalysisOptions): Promise<BaseAnalysisResult[]>; /** * Get available analyzers from the factory */ getAvailableAnalyzers(): AnalyzerType[]; /** * Run a comprehensive analysis with all available analyzers */ runComprehensiveAnalysis(page: Page, url: string, options?: AnalysisOptions): Promise<AnalysisResults>; /** * Validate that all required analyzers are available */ validateAnalyzers(analyzerTypes: AnalyzerType[]): void; private runSingleAnalysis; private createTimeoutPromise; } /** * Error classes for analysis orchestration */ export declare class AnalysisOrchestrationError extends Error { constructor(url: string, message: string); } export declare class AnalyzerValidationError extends Error { constructor(unavailableAnalyzers: AnalyzerType[]); } //# sourceMappingURL=analysis-orchestrator.d.ts.map