Files
rspade_system/node_modules/@jqhtml/parser/dist/ast.d.ts
root f625531b81 Update jqhtml packages
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-12 06:31:44 +00:00

102 lines
3.1 KiB
TypeScript

import { SourceLocation } from './lexer.js';
export declare enum NodeType {
PROGRAM = "Program",
COMPONENT_DEFINITION = "ComponentDefinition",
COMPONENT_INVOCATION = "ComponentInvocation",
HTML_TAG = "HtmlTag",
TEXT = "Text",
EXPRESSION = "Expression",
IF_STATEMENT = "IfStatement",
FOR_STATEMENT = "ForStatement",
CODE_BLOCK = "CodeBlock",
FRAGMENT = "Fragment",
SLOT = "Slot",// v2 slot syntax
CONDITIONAL_ATTRIBUTE = "ConditionalAttribute"
}
export interface BaseNode {
type: NodeType;
start: number;
end: number;
line: number;
column: number;
loc?: SourceLocation;
range?: [number, number];
}
export interface ProgramNode extends BaseNode {
type: NodeType.PROGRAM;
body: ASTNode[];
}
export interface ComponentDefinitionNode extends BaseNode {
type: NodeType.COMPONENT_DEFINITION;
name: string;
body: ASTNode[];
attributes: Record<string, any>;
extends?: string;
defineArgs?: Record<string, any>;
isSlotOnly?: boolean;
slotNames?: string[];
}
export interface TextNode extends BaseNode {
type: NodeType.TEXT;
content: string;
}
export interface ExpressionNode extends BaseNode {
type: NodeType.EXPRESSION;
code: string;
escaped: boolean;
}
export interface IfStatementNode extends BaseNode {
type: NodeType.IF_STATEMENT;
condition: string;
consequent: ASTNode[];
alternate: ASTNode[] | null;
}
export interface ForStatementNode extends BaseNode {
type: NodeType.FOR_STATEMENT;
iterator: string;
body: ASTNode[];
}
export interface CodeBlockNode extends BaseNode {
type: NodeType.CODE_BLOCK;
tokens?: Array<{
type: string;
value: string;
}>;
code?: string;
}
export interface ConditionalAttributeNode extends BaseNode {
type: NodeType.CONDITIONAL_ATTRIBUTE;
condition: string;
attributes: Record<string, any>;
}
export interface FragmentNode extends BaseNode {
type: NodeType.FRAGMENT;
children: ASTNode[];
}
export interface SlotNode extends BaseNode {
type: NodeType.SLOT;
name: string;
attributes?: Record<string, any>;
children: ASTNode[];
selfClosing: boolean;
}
export interface ComponentInvocationNode extends BaseNode {
type: NodeType.COMPONENT_INVOCATION;
name: string;
attributes: Record<string, any>;
conditionalAttributes?: ConditionalAttributeNode[];
children: ASTNode[];
selfClosing: boolean;
}
export interface HtmlTagNode extends BaseNode {
type: NodeType.HTML_TAG;
name: string;
attributes: Record<string, any>;
conditionalAttributes?: ConditionalAttributeNode[];
children: ASTNode[];
selfClosing: boolean;
preserveWhitespace?: boolean;
}
export type ASTNode = ProgramNode | ComponentDefinitionNode | ComponentInvocationNode | HtmlTagNode | TextNode | ExpressionNode | IfStatementNode | ForStatementNode | CodeBlockNode | FragmentNode | SlotNode | ConditionalAttributeNode;
export declare function createNode<T extends ASTNode>(type: T['type'], props: Omit<T, 'type' | keyof BaseNode>, start: number, end: number, line: number, column: number, loc?: SourceLocation): T;
//# sourceMappingURL=ast.d.ts.map