sicua
Version:
A tool for analyzing project structure and dependencies
104 lines (103 loc) • 3.19 kB
TypeScript
import { ComponentFlowAnalysisResult, ComponentFlowConfig, FlowAnalysisError, RouteFlowTree, DEFAULT_HTML_ELEMENT_FILTER } from "./types";
import { ComponentRelation, ScanResult } from "../../types";
import { ComponentLookupService } from "../../core/componentLookupService";
import { PathResolver } from "../../parsers/pathResolver";
/**
* Component flow analyzer using optimized services for enhanced performance
*/
export declare class ComponentFlowAnalyzer {
private projectRoot;
private srcDirectory;
private appDirectory;
private components;
private lookupService;
private pathResolver;
private scanResult;
private config;
private errors;
constructor(projectRoot: string, srcDirectory: string, components: ComponentRelation[], lookupService: ComponentLookupService, pathResolver: PathResolver, scanResult: ScanResult, config?: Partial<ComponentFlowConfig>);
/**
* Performs complete component flow analysis using optimized services
*/
analyze(): Promise<ComponentFlowAnalysisResult>;
/**
* Analyzes a single route using optimized services
*/
analyzeSingleRoute(routePath: string): Promise<RouteFlowTree | null>;
/**
* Performs quick analysis with limited depth
*/
quickAnalyze(maxDepth?: number): Promise<ComponentFlowAnalysisResult>;
/**
* Gets analysis errors
*/
getErrors(): FlowAnalysisError[];
/**
* Gets coverage summary for all routes
*/
getCoverageSummary(): Promise<{
totalRoutes: number;
routesWithMissingFiles: string[];
averageCoverage: number;
mostCommonMissingFiles: {
fileName: string;
count: number;
}[];
}>;
/**
* Validates input data and configuration
*/
private validateInput;
/**
* Merges user config with default configuration
*/
private mergeWithDefaultConfig;
/**
* Filters routes based on configuration
*/
private filterRoutes;
/**
* Extracts external dependencies from route flow trees using optimized detection
*/
private extractExternalDependencies;
/**
* Collects all imports from a component tree
*/
private collectImportsFromComponent;
/**
* Generates analysis summary
*/
private generateSummary;
/**
* Calculates global statistics across all routes
*/
private calculateGlobalStats;
/**
* Creates empty result for when no routes are found
*/
private createEmptyResult;
/**
* Adds an error to the error collection
*/
private addError;
/**
* Clears all accumulated errors
*/
clearErrors(): void;
/**
* Gets configuration used for analysis
*/
getConfig(): ComponentFlowConfig;
/**
* Updates configuration
*/
updateConfig(newConfig: Partial<ComponentFlowConfig>): void;
/**
* Enables HTML element tracking with optional filter configuration
*/
enableHtmlElementTracking(filter?: Partial<typeof DEFAULT_HTML_ELEMENT_FILTER>): void;
/**
* Disables HTML element tracking
*/
disableHtmlElementTracking(): void;
}