UNPKG

eslint-plugin-sonarjs

Version:
26 lines (25 loc) • 1.69 kB
import type { SourceCode } from 'eslint'; import type estree from 'estree'; import ts from 'typescript'; import type { RequiredParserServices } from '../parser-services.js'; export type ComponentAnalysis = { memberPropsTypeCandidates: ts.Type[]; enclosingTypePropsTypeCandidates: ts.Type[]; }; export type ComponentNode = estree.ClassDeclaration | estree.ClassExpression | estree.FunctionDeclaration | estree.FunctionExpression | estree.ArrowFunctionExpression; export type CollectedComponent = { componentNode: ComponentNode; componentIdentifier: estree.Identifier | undefined; }; /** * Returns true when `callee` is a call to `forwardRef` or `React.forwardRef`. */ export declare function isForwardRefCallee(callee: estree.Expression | estree.Super): boolean; export declare function getComponentPropsType(componentNode: estree.Node, services: RequiredParserServices): ts.Type | undefined; export declare function isBuiltinReactSuperclass(superClass: estree.Expression): boolean; export declare function isReactClassComponent(node: estree.Node): node is estree.ClassDeclaration | estree.ClassExpression; export declare function isComponentNode(node: estree.Node): node is ComponentNode; export declare function createComponentAnalysis(component: ComponentNode | CollectedComponent, services: RequiredParserServices): ComponentAnalysis; export declare function collectComponents(root: estree.Node, keys: SourceCode.VisitorKeys): CollectedComponent[]; export declare function collectComponentNodes(root: estree.Node, keys: SourceCode.VisitorKeys): ComponentNode[]; export declare function getComponentIdentifier(componentNode: estree.Node): estree.Identifier | undefined;