Files
NapCatQQ/.pnpm-store/v3/files/27/c2b0c7c8c3573079d516b72e2946390ed4faae40a83d86bb58330c48aa4e5f7d3eca7c2f607bd6cc6ea18dda9b6107c52b7316a0b15f5d87bcd7700f6ef73f
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

115 lines
3.2 KiB
Plaintext

// Based on https://github.com/facebook/jsx/blob/master/AST.md.
// Extends existing types for ESTree AST from `@types/estree`.
import { BaseExpression, BaseNode, Expression, Literal } from "estree";
export * from "estree";
declare module "estree" {
interface ExpressionMap {
JSXElement: JSXElement;
JSXFragment: JSXFragment;
}
interface NodeMap {
JSXIdentifier: JSXIdentifier;
JSXNamespacedName: JSXNamespacedName;
JSXMemberExpression: JSXMemberExpression;
JSXEmptyExpression: JSXEmptyExpression;
JSXExpressionContainer: JSXExpressionContainer;
JSXSpreadAttribute: JSXSpreadAttribute;
JSXAttribute: JSXAttribute;
JSXOpeningElement: JSXOpeningElement;
JSXOpeningFragment: JSXOpeningFragment;
JSXClosingElement: JSXClosingElement;
JSXClosingFragment: JSXClosingFragment;
JSXElement: JSXElement;
JSXFragment: JSXFragment;
JSXText: JSXText;
}
}
export interface JSXIdentifier extends BaseNode {
type: "JSXIdentifier";
name: string;
}
export interface JSXMemberExpression extends BaseExpression {
type: "JSXMemberExpression";
object: JSXMemberExpression | JSXIdentifier;
property: JSXIdentifier;
}
export interface JSXNamespacedName extends BaseExpression {
type: "JSXNamespacedName";
namespace: JSXIdentifier;
name: JSXIdentifier;
}
export interface JSXEmptyExpression extends BaseNode {
type: "JSXEmptyExpression";
}
export interface JSXExpressionContainer extends BaseNode {
type: "JSXExpressionContainer";
expression: Expression | JSXEmptyExpression;
}
export interface JSXSpreadChild extends BaseNode {
type: "JSXSpreadChild";
expression: Expression;
}
interface JSXBoundaryElement extends BaseNode {
name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
}
export interface JSXOpeningElement extends JSXBoundaryElement {
type: "JSXOpeningElement";
attributes: Array<JSXAttribute | JSXSpreadAttribute>;
selfClosing: boolean;
}
export interface JSXClosingElement extends JSXBoundaryElement {
type: "JSXClosingElement";
}
export interface JSXAttribute extends BaseNode {
type: "JSXAttribute";
name: JSXIdentifier | JSXNamespacedName;
value: Literal | JSXExpressionContainer | JSXElement | JSXFragment | null;
}
export interface JSXSpreadAttribute extends BaseNode {
type: "JSXSpreadAttribute";
argument: Expression;
}
export interface JSXText extends BaseNode {
type: "JSXText";
value: string;
raw: string;
}
export interface JSXElement extends BaseExpression {
type: "JSXElement";
openingElement: JSXOpeningElement;
children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
closingElement: JSXClosingElement | null;
}
export interface JSXFragment extends BaseExpression {
type: "JSXFragment";
openingFragment: JSXOpeningFragment;
children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
closingFragment: JSXClosingFragment;
}
export interface JSXOpeningFragment extends BaseNode {
type: "JSXOpeningFragment";
}
export interface JSXClosingFragment extends BaseNode {
type: "JSXClosingFragment";
}