UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

78 lines (77 loc) 2.4 kB
import * as t from "@babel/types"; import { ConditionalPattern, ComponentFlowConfig } from "../types"; /** * Core parser for detecting and analyzing conditional rendering patterns in JSX */ export declare class ConditionalParser { private config; constructor(config?: ComponentFlowConfig); /** * Analyzes a JSX expression for conditional rendering patterns */ analyzeExpression(expression: t.Expression, sourceCode: string): ConditionalPattern[]; /** * Analyzes JSX expressions for conditional patterns within JSX */ private analyzeJSXExpressions; /** * Analyzes function body for conditional return statements */ analyzeFunctionBody(body: t.BlockStatement | t.Expression, sourceCode: string): ConditionalPattern[]; /** * Parses ternary conditional expressions (condition ? true : false) - ENHANCED */ private parseTernaryExpression; /** * Parses logical AND expressions (condition && <Component />) - ENHANCED */ private parseLogicalExpression; /** * Analyzes block statements for if/else and early return patterns */ private analyzeBlockStatement; /** * Parses if/else statements - ENHANCED */ private parseIfStatement; /** * Parses switch statements - ENHANCED */ private parseSwitchStatement; /** * Analyzes return statements for conditional patterns */ private analyzeReturnStatement; /** * Analyzes call expressions that might return conditional JSX */ private analyzeCallExpression; /** * NEW: Extracts both component and HTML element references from various node types */ private extractAllReferences; /** * NEW: Extracts references from statements */ private extractReferencesFromStatement; /** * NEW: Parses HTML element into HTMLElementReference */ private parseHTMLElement; /** * NEW: Extracts text content from JSX element */ private extractTextContent; /** * NEW: Determines if an HTML element should be included based on configuration */ private shouldIncludeHtmlElement; /** * Helper function to extract name from member expressions */ private extractMemberExpressionName; /** * Extracts condition string from test expressions */ private extractConditionString; }