sicua
Version:
A tool for analyzing project structure and dependencies
103 lines (102 loc) • 3.14 kB
TypeScript
import ts from "typescript";
import { ComponentContext } from "../types/componentExtractor.types";
export declare class ComponentExtractor {
private sourceFile;
private content;
private filePath;
private importExtractor;
private functionExtractor;
private typeExtractor;
constructor(sourceFile: ts.SourceFile, content: string, filePath: string, srcDir: string, typeChecker?: ts.TypeChecker);
/**
* Extracts all component context from the source file
*/
extractComponentContext(): ComponentContext;
/**
* Extracts individual components from the file
*/
private extractComponents;
/**
* Builds a complete component definition
*/
private buildComponentDefinition;
/**
* Determines if a class is a React component
*/
private isReactClassComponent;
/**
* Determines component type
*/
private determineComponentType;
/**
* Determines component category
*/
private determineComponentCategory;
/**
* Calculates component complexity
*/
private calculateComponentComplexity;
/**
* Extracts React-specific component information
*/
private extractReactComponentInfo;
/**
* Extracts hook usage information
*/
private extractHookUsage;
/**
* Extracts prop definitions
*/
private extractPropDefinitions;
/**
* Calculates JSX complexity
*/
private calculateJSXComplexity;
/**
* Helper methods for component analysis
*/
private isHOC;
private isRenderProp;
private isCompoundComponent;
private isReactRelatedFile;
private calculateJSXNestingDepth;
private determineHookType;
private determineHookComplexity;
private extractHookDependencies;
private determineHookPurpose;
private buildClassComponentDefinition;
private extractComponentStructure;
private extractComponentDependencies;
private extractComponentLifecycle;
private analyzePerformance;
private analyzeAccessibility;
private analyzeTestability;
private extractComponentPatterns;
private getComponentLocation;
private extractStateDefinitions;
private extractContextUsage;
private extractRefUsage;
private extractComponentRelationships;
private analyzeComponentPatterns;
private analyzeComponentArchitecture;
private calculateQualityMetrics;
private extractProvidedValues;
private extractConsumedValues;
private determineRefType;
private determineRefPurpose;
private extractRenderedComponents;
private extractPropRelationships;
private generatePatternRecommendations;
private buildComponentHierarchy;
private determineArchitectureStructure;
private calculateArchitectureDepth;
private analyzeModularity;
private complexityToNumber;
private calculatePerformanceScore;
private calculateMaintainabilityScore;
private calculateReusabilityScore;
private createEmptyReactComponentInfo;
private createEmptyPatternAnalysis;
private createEmptyArchitecture;
private createEmptyQualityMetrics;
}