UNPKG

4.78 kBTypeScriptView Raw
1import type { PresentArray } from '@glimmer/interfaces';
2import { SerializedSourceSlice } from '../../source/slice';
3import { SerializedSourceSpan } from '../../source/span';
4import * as ASTv2 from '../api';
5export interface SerializedBaseNode {
6 loc: SerializedSourceSpan;
7}
8export interface SerializedLiteralExpression extends SerializedBaseNode {
9 type: 'Literal';
10 value: ASTv2.LiteralValue;
11}
12export interface SerializedInterpolateExpression extends SerializedBaseNode {
13 type: 'Interpolate';
14 parts: PresentArray<SerializedExpressionNode>;
15}
16export interface SerializedPathExpression extends SerializedBaseNode {
17 type: 'Path';
18 ref: SerializedVariableReference;
19 tail: SerializedSourceSlice[];
20}
21export interface SerializedThisReference extends SerializedBaseNode {
22 type: 'This';
23}
24export interface SerializedArgReference extends SerializedBaseNode {
25 type: 'Arg';
26 name: SerializedSourceSlice;
27}
28export interface SerializedLocalVarReference extends SerializedBaseNode {
29 type: 'Local';
30 name: string;
31}
32export interface SerializedFreeVarReference extends SerializedBaseNode {
33 type: 'Free';
34 name: string;
35 resolution: ASTv2.SerializedResolution;
36}
37export declare type SerializedVariableReference = SerializedThisReference | SerializedArgReference | SerializedLocalVarReference | SerializedFreeVarReference;
38export interface SerializedCallNode extends SerializedBaseNode {
39 callee: SerializedExpressionNode;
40 args: SerializedArgs;
41}
42export interface SerializedCallExpression extends SerializedCallNode {
43 type: 'Call';
44}
45export interface SerializedDeprecatedCallExpression extends SerializedBaseNode {
46 type: 'DeprecatedCall';
47 callee: SerializedFreeVarReference;
48}
49export declare type SerializedExpressionNode = SerializedLiteralExpression | SerializedPathExpression | SerializedCallExpression | SerializedDeprecatedCallExpression | SerializedInterpolateExpression;
50export interface SerializedArgs extends SerializedBaseNode {
51 positional: SerializedPositional;
52 named: SerializedNamed;
53}
54export interface SerializedPositional extends SerializedBaseNode {
55 exprs: SerializedExpressionNode[];
56}
57export interface SerializedNamed extends SerializedBaseNode {
58 entries: [SerializedSourceSlice, SerializedExpressionNode][];
59}
60export declare type SerializedNamedArgument = [SerializedSourceSlice, SerializedExpressionNode];
61export interface SerializedAppendContent extends SerializedBaseNode {
62 type: 'Append';
63 value: SerializedExpressionNode;
64 trusting: boolean;
65}
66export interface SerializedGlimmerComment extends SerializedBaseNode {
67 type: 'GlimmerComment';
68 text: SerializedSourceSlice;
69}
70export interface SerializedHtmlText extends SerializedBaseNode {
71 type: 'HtmlText';
72 chars: string;
73}
74export interface SerializedHtmlComment extends SerializedBaseNode {
75 type: 'HtmlComment';
76 text: SerializedSourceSlice;
77}
78export interface SerializedInvokeBlock extends SerializedCallNode {
79 type: 'InvokeBlock';
80 blocks: SerializedNamedBlocks;
81}
82export interface SerializedInvokeComponent extends SerializedBaseNode {
83 type: 'InvokeComponent';
84 callee: SerializedExpressionNode;
85 blocks: SerializedNamedBlocks;
86 attrs: SerializedAttrNode[];
87 componentArgs: SerializedComponentArg[];
88 modifiers: SerializedElementModifier[];
89}
90export interface SerializedSimpleElement extends SerializedBaseNode {
91 type: 'SimpleElement';
92 tag: SerializedSourceSlice;
93 body: SerializedContentNode[];
94 attrs: SerializedHtmlOrSplatAttr[];
95 componentArgs: SerializedComponentArg[];
96 modifiers: SerializedElementModifier[];
97}
98export declare type SerializedSplatAttr = SerializedSourceSlice<'...attributes'>;
99export interface SerializedAttrOrArg extends SerializedBaseNode {
100 name: SerializedSourceSlice;
101 value: SerializedExpressionNode;
102 trusting: boolean;
103}
104export declare type SerializedHtmlOrSplatAttr = SerializedSplatAttr | SerializedAttrOrArg;
105export declare type SerializedAttrNode = SerializedSplatAttr | SerializedAttrOrArg;
106export declare type SerializedComponentArg = SerializedBaseNode;
107export declare type SerializedElementModifier = SerializedCallNode;
108export interface SerializedNamedBlocks extends SerializedBaseNode {
109 blocks: SerializedNamedBlock[];
110}
111export interface SerializedNamedBlock {
112 name: SerializedSourceSlice;
113 block: SerializedBlock;
114}
115export interface SerializedBlock extends SerializedBaseNode {
116 body: SerializedContentNode[];
117 table: string[];
118}
119export declare type SerializedContentNode = SerializedAppendContent | SerializedHtmlComment | SerializedHtmlText | SerializedGlimmerComment | SerializedInvokeBlock | SerializedInvokeComponent | SerializedSimpleElement;
120//# sourceMappingURL=types.d.ts.map
\No newline at end of file