sicua
Version:
A tool for analyzing project structure and dependencies
38 lines (37 loc) • 1.57 kB
TypeScript
import ts from "typescript";
import * as t from "@babel/types";
import { FunctionDefinition } from "../../analyzers/contextualSummaries/types/functionExtractor.types";
/**
* Enhanced TypeScript version - Checks if a node is a React component
* Combines TypeScript type checking with deep JSX analysis
*/
export declare function isReactComponent(node: ts.Node, typeChecker?: ts.TypeChecker): boolean;
/**
* Check if a custom FunctionDefinition object is a React component
*/
export declare function isReactComponentDefinition(funcDef: FunctionDefinition): boolean;
/**
* Check if a JSX element represents a React component (vs HTML element)
*/
export declare function isReactComponentElement(node: t.JSXElement): boolean;
/**
* Get the name of a JSX element
*/
export declare function getJSXElementName(name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName): string;
/**
* Check if a JSX element is an HTML element (vs React component)
*/
export declare function isHTMLElement(node: t.JSXElement): boolean;
/**
* Babel version - Enhanced with better JSX detection
* Checks if a function node is a React component
*/
export declare function isReactComponentBabel(node: t.Function | t.ArrowFunctionExpression, functionName?: string): boolean;
/**
* Enhanced JSX detection for Babel AST nodes
*/
export declare function containsJSX(node: t.Node): boolean;
/**
* Utility function to get function name from Babel AST nodes
*/
export declare function getBabelFunctionName(node: t.Function | t.ArrowFunctionExpression, parent?: t.Node): string;