UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

69 lines (68 loc) 2.49 kB
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; }