UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

122 lines (121 loc) 3.1 kB
import { ComponentRelation, FunctionData } from "../../types"; import ts from "typescript"; /** * Analysis configuration */ interface AnalysisConfig { concurrency: number; enableValidation: boolean; enableErrorRecovery: boolean; skipEmptyFiles: boolean; maxRetries: number; timeoutMs: number; enableDetailedLogging: boolean; } /** * Analysis statistics */ interface AnalysisStatistics { totalComponents: number; processedComponents: number; skippedComponents: number; failedComponents: number; totalFunctions: number; validFunctions: number; invalidFunctions: number; processingTimeMs: number; averageTimePerComponent: number; errorSummary: { totalErrors: number; errorsByCategory: Record<string, number>; criticalErrors: number; }; validationSummary?: { overallScore: number; issuesByCategory: Record<string, number>; issuesBySeverity: Record<string, number>; }; } /** * Enhanced analyzer for business logic functions within components */ export declare class FunctionAnalyzer { private components; private sourceFileManager; private functionExtractor; private errorHandler; private dataValidator; private typeChecker?; private config; private statistics; constructor(components: ComponentRelation[], typeChecker?: ts.TypeChecker, config?: Partial<AnalysisConfig>); /** * Enhanced analysis with comprehensive error handling and validation * @returns Promise resolving to an array of analyzed function data */ analyze(): Promise<FunctionData[]>; /** * Processes a single component with comprehensive error handling */ private processComponent; /** * Processes component with timeout protection */ private processComponentWithTimeout; /** * Validates component data */ private isValidComponent; /** * Checks if file is empty or should be skipped */ private isEmptyFile; /** * Filters valid functions based on validation results */ private filterValidFunctions; /** * Updates validation statistics */ private updateValidationStatistics; /** * Finalizes analysis and updates statistics */ private finalizeAnalysis; /** * Initializes statistics object */ private initializeStatistics; /** * Logs analysis results */ private logAnalysisResults; /** * Gets detailed analysis statistics */ getStatistics(): AnalysisStatistics; /** * Gets error details for debugging */ getErrors(): any[]; /** * Updates analysis configuration */ updateConfig(newConfig: Partial<AnalysisConfig>): void; /** * Gets current configuration */ getConfig(): AnalysisConfig; /** * Logging utilities */ private logInfo; private logWarning; private logError; private logDebug; /** * Cleanup method for proper resource management */ dispose(): void; } export {};