sicua
Version:
A tool for analyzing project structure and dependencies
69 lines (68 loc) • 2.49 kB
TypeScript
import { RouteFlowTree, RouteStructure, ComponentFlowConfig, EnhancedRouteFlowTree } from "../types";
import { ScanResult } from "../../../types";
import { ComponentLookupService } from "../../../core/componentLookupService";
import { PathResolver } from "../../../parsers/pathResolver";
/**
* Builds complete component flow trees using optimized services for enhanced performance
*/
export declare class FlowTreeBuilder {
private componentScanner;
private coverageBuilder;
constructor(appDirectory: string, lookupService: ComponentLookupService, pathResolver: PathResolver, scanResult: ScanResult, config?: ComponentFlowConfig);
/**
* Builds complete flow tree for a single route using optimized services
*/
buildRouteFlowTree(routeStructure: RouteStructure): EnhancedRouteFlowTree;
/**
* Builds flow trees for multiple routes
*/
buildMultipleRouteFlowTrees(routeStructures: RouteStructure[]): EnhancedRouteFlowTree[];
/**
* Builds a simplified tree for quick visualization
*/
buildSimplifiedFlowTree(routeStructure: RouteStructure, maxDepth?: number): RouteFlowTree;
/**
* Builds flow tree focused on conditional rendering patterns
*/
buildConditionalFlowTree(routeStructure: RouteStructure): {
routePath: string;
conditionalPaths: ConditionalPath[];
totalPaths: number;
};
/**
* Calculates comprehensive component statistics with optimized traversal
*/
private calculateComponentStats;
/**
* Recursively traverses component tree to calculate statistics with optimized deduplication
*/
private traverseComponentTree;
/**
* Generates visualization metadata for the component tree
*/
private generateVisualizationMetadata;
/**
* Generates cluster information for visualization grouping with optimized traversal
*/
private generateClusters;
/**
* Generates layout hints for visualization
*/
private generateLayoutHints;
/**
* Calculates the total number of edges in the component tree with optimized traversal
*/
private calculateEdgeCount;
/**
* Extracts all possible conditional rendering paths with optimized traversal
*/
private extractConditionalPaths;
}
/**
* Represents a conditional rendering path through the component tree
*/
export interface ConditionalPath {
components: string[];
conditions: string[];
isConditional: boolean;
}