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