sicua
Version:
A tool for analyzing project structure and dependencies
122 lines (121 loc) • 3.1 kB
TypeScript
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 {};