@herb-tools/core 0.4.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/herb-core.browser.js +1223 -432
- package/dist/herb-core.browser.js.map +1 -1
- package/dist/herb-core.cjs +1314 -432
- package/dist/herb-core.cjs.map +1 -1
- package/dist/herb-core.esm.js +1223 -432
- package/dist/herb-core.esm.js.map +1 -1
- package/dist/herb-core.umd.js +1314 -432
- package/dist/herb-core.umd.js.map +1 -1
- package/dist/types/ast-utils.d.ts +74 -0
- package/dist/types/backend.d.ts +2 -1
- package/dist/types/herb-backend.d.ts +3 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/node-type-guards.d.ts +434 -0
- package/dist/types/nodes.d.ts +149 -97
- package/dist/types/parser-options.d.ts +4 -0
- package/dist/types/visitor.d.ts +3 -2
- package/package.json +1 -1
- package/src/ast-utils.ts +191 -0
- package/src/backend.ts +2 -1
- package/src/errors.ts +1 -1
- package/src/herb-backend.ts +7 -2
- package/src/index.ts +3 -0
- package/src/node-type-guards.ts +876 -0
- package/src/nodes.ts +300 -251
- package/src/parser-options.ts +7 -0
- package/src/visitor.ts +11 -6
package/dist/types/nodes.d.ts
CHANGED
|
@@ -102,16 +102,19 @@ export interface SerializedHTMLCloseTagNode extends SerializedNode {
|
|
|
102
102
|
type: "AST_HTML_CLOSE_TAG_NODE";
|
|
103
103
|
tag_opening: SerializedToken | null;
|
|
104
104
|
tag_name: SerializedToken | null;
|
|
105
|
+
children: SerializedNode[];
|
|
105
106
|
tag_closing: SerializedToken | null;
|
|
106
107
|
}
|
|
107
108
|
export interface HTMLCloseTagNodeProps extends BaseNodeProps {
|
|
108
109
|
tag_opening: Token | null;
|
|
109
110
|
tag_name: Token | null;
|
|
111
|
+
children: Node[];
|
|
110
112
|
tag_closing: Token | null;
|
|
111
113
|
}
|
|
112
114
|
export declare class HTMLCloseTagNode extends Node {
|
|
113
115
|
readonly tag_opening: Token | null;
|
|
114
116
|
readonly tag_name: Token | null;
|
|
117
|
+
readonly children: Node[];
|
|
115
118
|
readonly tag_closing: Token | null;
|
|
116
119
|
static from(data: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
|
|
117
120
|
constructor(props: HTMLCloseTagNodeProps);
|
|
@@ -122,56 +125,26 @@ export declare class HTMLCloseTagNode extends Node {
|
|
|
122
125
|
toJSON(): SerializedHTMLCloseTagNode;
|
|
123
126
|
treeInspect(): string;
|
|
124
127
|
}
|
|
125
|
-
export interface SerializedHTMLSelfCloseTagNode extends SerializedNode {
|
|
126
|
-
type: "AST_HTML_SELF_CLOSE_TAG_NODE";
|
|
127
|
-
tag_opening: SerializedToken | null;
|
|
128
|
-
tag_name: SerializedToken | null;
|
|
129
|
-
attributes: SerializedNode[];
|
|
130
|
-
tag_closing: SerializedToken | null;
|
|
131
|
-
is_void: boolean;
|
|
132
|
-
}
|
|
133
|
-
export interface HTMLSelfCloseTagNodeProps extends BaseNodeProps {
|
|
134
|
-
tag_opening: Token | null;
|
|
135
|
-
tag_name: Token | null;
|
|
136
|
-
attributes: any[];
|
|
137
|
-
tag_closing: Token | null;
|
|
138
|
-
is_void: boolean;
|
|
139
|
-
}
|
|
140
|
-
export declare class HTMLSelfCloseTagNode extends Node {
|
|
141
|
-
readonly tag_opening: Token | null;
|
|
142
|
-
readonly tag_name: Token | null;
|
|
143
|
-
readonly attributes: any[];
|
|
144
|
-
readonly tag_closing: Token | null;
|
|
145
|
-
readonly is_void: boolean;
|
|
146
|
-
static from(data: SerializedHTMLSelfCloseTagNode): HTMLSelfCloseTagNode;
|
|
147
|
-
constructor(props: HTMLSelfCloseTagNodeProps);
|
|
148
|
-
accept(visitor: Visitor): void;
|
|
149
|
-
childNodes(): (Node | null | undefined)[];
|
|
150
|
-
compactChildNodes(): Node[];
|
|
151
|
-
recursiveErrors(): HerbError[];
|
|
152
|
-
toJSON(): SerializedHTMLSelfCloseTagNode;
|
|
153
|
-
treeInspect(): string;
|
|
154
|
-
}
|
|
155
128
|
export interface SerializedHTMLElementNode extends SerializedNode {
|
|
156
129
|
type: "AST_HTML_ELEMENT_NODE";
|
|
157
|
-
open_tag:
|
|
130
|
+
open_tag: SerializedHTMLOpenTagNode | null;
|
|
158
131
|
tag_name: SerializedToken | null;
|
|
159
132
|
body: SerializedNode[];
|
|
160
|
-
close_tag:
|
|
133
|
+
close_tag: SerializedHTMLCloseTagNode | null;
|
|
161
134
|
is_void: boolean;
|
|
162
135
|
}
|
|
163
136
|
export interface HTMLElementNodeProps extends BaseNodeProps {
|
|
164
|
-
open_tag:
|
|
137
|
+
open_tag: HTMLOpenTagNode | null;
|
|
165
138
|
tag_name: Token | null;
|
|
166
139
|
body: Node[];
|
|
167
|
-
close_tag:
|
|
140
|
+
close_tag: HTMLCloseTagNode | null;
|
|
168
141
|
is_void: boolean;
|
|
169
142
|
}
|
|
170
143
|
export declare class HTMLElementNode extends Node {
|
|
171
|
-
readonly open_tag:
|
|
144
|
+
readonly open_tag: HTMLOpenTagNode | null;
|
|
172
145
|
readonly tag_name: Token | null;
|
|
173
146
|
readonly body: Node[];
|
|
174
|
-
readonly close_tag:
|
|
147
|
+
readonly close_tag: HTMLCloseTagNode | null;
|
|
175
148
|
readonly is_void: boolean;
|
|
176
149
|
static from(data: SerializedHTMLElementNode): HTMLElementNode;
|
|
177
150
|
constructor(props: HTMLElementNodeProps);
|
|
@@ -211,13 +184,13 @@ export declare class HTMLAttributeValueNode extends Node {
|
|
|
211
184
|
}
|
|
212
185
|
export interface SerializedHTMLAttributeNameNode extends SerializedNode {
|
|
213
186
|
type: "AST_HTML_ATTRIBUTE_NAME_NODE";
|
|
214
|
-
|
|
187
|
+
children: SerializedNode[];
|
|
215
188
|
}
|
|
216
189
|
export interface HTMLAttributeNameNodeProps extends BaseNodeProps {
|
|
217
|
-
|
|
190
|
+
children: Node[];
|
|
218
191
|
}
|
|
219
192
|
export declare class HTMLAttributeNameNode extends Node {
|
|
220
|
-
readonly
|
|
193
|
+
readonly children: Node[];
|
|
221
194
|
static from(data: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
|
|
222
195
|
constructor(props: HTMLAttributeNameNodeProps);
|
|
223
196
|
accept(visitor: Visitor): void;
|
|
@@ -229,19 +202,19 @@ export declare class HTMLAttributeNameNode extends Node {
|
|
|
229
202
|
}
|
|
230
203
|
export interface SerializedHTMLAttributeNode extends SerializedNode {
|
|
231
204
|
type: "AST_HTML_ATTRIBUTE_NODE";
|
|
232
|
-
name:
|
|
205
|
+
name: SerializedHTMLAttributeNameNode | null;
|
|
233
206
|
equals: SerializedToken | null;
|
|
234
|
-
value:
|
|
207
|
+
value: SerializedHTMLAttributeValueNode | null;
|
|
235
208
|
}
|
|
236
209
|
export interface HTMLAttributeNodeProps extends BaseNodeProps {
|
|
237
|
-
name:
|
|
210
|
+
name: HTMLAttributeNameNode | null;
|
|
238
211
|
equals: Token | null;
|
|
239
|
-
value:
|
|
212
|
+
value: HTMLAttributeValueNode | null;
|
|
240
213
|
}
|
|
241
214
|
export declare class HTMLAttributeNode extends Node {
|
|
242
|
-
readonly name:
|
|
215
|
+
readonly name: HTMLAttributeNameNode | null;
|
|
243
216
|
readonly equals: Token | null;
|
|
244
|
-
readonly value:
|
|
217
|
+
readonly value: HTMLAttributeValueNode | null;
|
|
245
218
|
static from(data: SerializedHTMLAttributeNode): HTMLAttributeNode;
|
|
246
219
|
constructor(props: HTMLAttributeNodeProps);
|
|
247
220
|
accept(visitor: Visitor): void;
|
|
@@ -317,6 +290,54 @@ export declare class HTMLDoctypeNode extends Node {
|
|
|
317
290
|
toJSON(): SerializedHTMLDoctypeNode;
|
|
318
291
|
treeInspect(): string;
|
|
319
292
|
}
|
|
293
|
+
export interface SerializedXMLDeclarationNode extends SerializedNode {
|
|
294
|
+
type: "AST_XML_DECLARATION_NODE";
|
|
295
|
+
tag_opening: SerializedToken | null;
|
|
296
|
+
children: SerializedNode[];
|
|
297
|
+
tag_closing: SerializedToken | null;
|
|
298
|
+
}
|
|
299
|
+
export interface XMLDeclarationNodeProps extends BaseNodeProps {
|
|
300
|
+
tag_opening: Token | null;
|
|
301
|
+
children: Node[];
|
|
302
|
+
tag_closing: Token | null;
|
|
303
|
+
}
|
|
304
|
+
export declare class XMLDeclarationNode extends Node {
|
|
305
|
+
readonly tag_opening: Token | null;
|
|
306
|
+
readonly children: Node[];
|
|
307
|
+
readonly tag_closing: Token | null;
|
|
308
|
+
static from(data: SerializedXMLDeclarationNode): XMLDeclarationNode;
|
|
309
|
+
constructor(props: XMLDeclarationNodeProps);
|
|
310
|
+
accept(visitor: Visitor): void;
|
|
311
|
+
childNodes(): (Node | null | undefined)[];
|
|
312
|
+
compactChildNodes(): Node[];
|
|
313
|
+
recursiveErrors(): HerbError[];
|
|
314
|
+
toJSON(): SerializedXMLDeclarationNode;
|
|
315
|
+
treeInspect(): string;
|
|
316
|
+
}
|
|
317
|
+
export interface SerializedCDATANode extends SerializedNode {
|
|
318
|
+
type: "AST_CDATA_NODE";
|
|
319
|
+
tag_opening: SerializedToken | null;
|
|
320
|
+
children: SerializedNode[];
|
|
321
|
+
tag_closing: SerializedToken | null;
|
|
322
|
+
}
|
|
323
|
+
export interface CDATANodeProps extends BaseNodeProps {
|
|
324
|
+
tag_opening: Token | null;
|
|
325
|
+
children: Node[];
|
|
326
|
+
tag_closing: Token | null;
|
|
327
|
+
}
|
|
328
|
+
export declare class CDATANode extends Node {
|
|
329
|
+
readonly tag_opening: Token | null;
|
|
330
|
+
readonly children: Node[];
|
|
331
|
+
readonly tag_closing: Token | null;
|
|
332
|
+
static from(data: SerializedCDATANode): CDATANode;
|
|
333
|
+
constructor(props: CDATANodeProps);
|
|
334
|
+
accept(visitor: Visitor): void;
|
|
335
|
+
childNodes(): (Node | null | undefined)[];
|
|
336
|
+
compactChildNodes(): Node[];
|
|
337
|
+
recursiveErrors(): HerbError[];
|
|
338
|
+
toJSON(): SerializedCDATANode;
|
|
339
|
+
treeInspect(): string;
|
|
340
|
+
}
|
|
320
341
|
export interface SerializedWhitespaceNode extends SerializedNode {
|
|
321
342
|
type: "AST_WHITESPACE_NODE";
|
|
322
343
|
value: SerializedToken | null;
|
|
@@ -423,7 +444,7 @@ export interface SerializedERBIfNode extends SerializedNode {
|
|
|
423
444
|
tag_closing: SerializedToken | null;
|
|
424
445
|
statements: SerializedNode[];
|
|
425
446
|
subsequent: SerializedNode | null;
|
|
426
|
-
end_node:
|
|
447
|
+
end_node: SerializedERBEndNode | null;
|
|
427
448
|
}
|
|
428
449
|
export interface ERBIfNodeProps extends BaseNodeProps {
|
|
429
450
|
tag_opening: Token | null;
|
|
@@ -431,7 +452,7 @@ export interface ERBIfNodeProps extends BaseNodeProps {
|
|
|
431
452
|
tag_closing: Token | null;
|
|
432
453
|
statements: Node[];
|
|
433
454
|
subsequent: Node | null;
|
|
434
|
-
end_node:
|
|
455
|
+
end_node: ERBEndNode | null;
|
|
435
456
|
}
|
|
436
457
|
export declare class ERBIfNode extends Node {
|
|
437
458
|
readonly tag_opening: Token | null;
|
|
@@ -439,7 +460,7 @@ export declare class ERBIfNode extends Node {
|
|
|
439
460
|
readonly tag_closing: Token | null;
|
|
440
461
|
readonly statements: Node[];
|
|
441
462
|
readonly subsequent: Node | null;
|
|
442
|
-
readonly end_node:
|
|
463
|
+
readonly end_node: ERBEndNode | null;
|
|
443
464
|
static from(data: SerializedERBIfNode): ERBIfNode;
|
|
444
465
|
constructor(props: ERBIfNodeProps);
|
|
445
466
|
accept(visitor: Visitor): void;
|
|
@@ -455,21 +476,21 @@ export interface SerializedERBBlockNode extends SerializedNode {
|
|
|
455
476
|
content: SerializedToken | null;
|
|
456
477
|
tag_closing: SerializedToken | null;
|
|
457
478
|
body: SerializedNode[];
|
|
458
|
-
end_node:
|
|
479
|
+
end_node: SerializedERBEndNode | null;
|
|
459
480
|
}
|
|
460
481
|
export interface ERBBlockNodeProps extends BaseNodeProps {
|
|
461
482
|
tag_opening: Token | null;
|
|
462
483
|
content: Token | null;
|
|
463
484
|
tag_closing: Token | null;
|
|
464
485
|
body: Node[];
|
|
465
|
-
end_node:
|
|
486
|
+
end_node: ERBEndNode | null;
|
|
466
487
|
}
|
|
467
488
|
export declare class ERBBlockNode extends Node {
|
|
468
489
|
readonly tag_opening: Token | null;
|
|
469
490
|
readonly content: Token | null;
|
|
470
491
|
readonly tag_closing: Token | null;
|
|
471
492
|
readonly body: Node[];
|
|
472
|
-
readonly end_node:
|
|
493
|
+
readonly end_node: ERBEndNode | null;
|
|
473
494
|
static from(data: SerializedERBBlockNode): ERBBlockNode;
|
|
474
495
|
constructor(props: ERBBlockNodeProps);
|
|
475
496
|
accept(visitor: Visitor): void;
|
|
@@ -513,8 +534,8 @@ export interface SerializedERBCaseNode extends SerializedNode {
|
|
|
513
534
|
tag_closing: SerializedToken | null;
|
|
514
535
|
children: SerializedNode[];
|
|
515
536
|
conditions: SerializedNode[];
|
|
516
|
-
else_clause:
|
|
517
|
-
end_node:
|
|
537
|
+
else_clause: SerializedERBElseNode | null;
|
|
538
|
+
end_node: SerializedERBEndNode | null;
|
|
518
539
|
}
|
|
519
540
|
export interface ERBCaseNodeProps extends BaseNodeProps {
|
|
520
541
|
tag_opening: Token | null;
|
|
@@ -522,17 +543,17 @@ export interface ERBCaseNodeProps extends BaseNodeProps {
|
|
|
522
543
|
tag_closing: Token | null;
|
|
523
544
|
children: Node[];
|
|
524
545
|
conditions: any[];
|
|
525
|
-
else_clause:
|
|
526
|
-
end_node:
|
|
546
|
+
else_clause: ERBElseNode | null;
|
|
547
|
+
end_node: ERBEndNode | null;
|
|
527
548
|
}
|
|
528
549
|
export declare class ERBCaseNode extends Node {
|
|
529
550
|
readonly tag_opening: Token | null;
|
|
530
551
|
readonly content: Token | null;
|
|
531
552
|
readonly tag_closing: Token | null;
|
|
532
553
|
readonly children: Node[];
|
|
533
|
-
readonly conditions:
|
|
534
|
-
readonly else_clause:
|
|
535
|
-
readonly end_node:
|
|
554
|
+
readonly conditions: Node[];
|
|
555
|
+
readonly else_clause: ERBElseNode | null;
|
|
556
|
+
readonly end_node: ERBEndNode | null;
|
|
536
557
|
static from(data: SerializedERBCaseNode): ERBCaseNode;
|
|
537
558
|
constructor(props: ERBCaseNodeProps);
|
|
538
559
|
accept(visitor: Visitor): void;
|
|
@@ -549,8 +570,8 @@ export interface SerializedERBCaseMatchNode extends SerializedNode {
|
|
|
549
570
|
tag_closing: SerializedToken | null;
|
|
550
571
|
children: SerializedNode[];
|
|
551
572
|
conditions: SerializedNode[];
|
|
552
|
-
else_clause:
|
|
553
|
-
end_node:
|
|
573
|
+
else_clause: SerializedERBElseNode | null;
|
|
574
|
+
end_node: SerializedERBEndNode | null;
|
|
554
575
|
}
|
|
555
576
|
export interface ERBCaseMatchNodeProps extends BaseNodeProps {
|
|
556
577
|
tag_opening: Token | null;
|
|
@@ -558,17 +579,17 @@ export interface ERBCaseMatchNodeProps extends BaseNodeProps {
|
|
|
558
579
|
tag_closing: Token | null;
|
|
559
580
|
children: Node[];
|
|
560
581
|
conditions: any[];
|
|
561
|
-
else_clause:
|
|
562
|
-
end_node:
|
|
582
|
+
else_clause: ERBElseNode | null;
|
|
583
|
+
end_node: ERBEndNode | null;
|
|
563
584
|
}
|
|
564
585
|
export declare class ERBCaseMatchNode extends Node {
|
|
565
586
|
readonly tag_opening: Token | null;
|
|
566
587
|
readonly content: Token | null;
|
|
567
588
|
readonly tag_closing: Token | null;
|
|
568
589
|
readonly children: Node[];
|
|
569
|
-
readonly conditions:
|
|
570
|
-
readonly else_clause:
|
|
571
|
-
readonly end_node:
|
|
590
|
+
readonly conditions: Node[];
|
|
591
|
+
readonly else_clause: ERBElseNode | null;
|
|
592
|
+
readonly end_node: ERBEndNode | null;
|
|
572
593
|
static from(data: SerializedERBCaseMatchNode): ERBCaseMatchNode;
|
|
573
594
|
constructor(props: ERBCaseMatchNodeProps);
|
|
574
595
|
accept(visitor: Visitor): void;
|
|
@@ -584,21 +605,21 @@ export interface SerializedERBWhileNode extends SerializedNode {
|
|
|
584
605
|
content: SerializedToken | null;
|
|
585
606
|
tag_closing: SerializedToken | null;
|
|
586
607
|
statements: SerializedNode[];
|
|
587
|
-
end_node:
|
|
608
|
+
end_node: SerializedERBEndNode | null;
|
|
588
609
|
}
|
|
589
610
|
export interface ERBWhileNodeProps extends BaseNodeProps {
|
|
590
611
|
tag_opening: Token | null;
|
|
591
612
|
content: Token | null;
|
|
592
613
|
tag_closing: Token | null;
|
|
593
614
|
statements: Node[];
|
|
594
|
-
end_node:
|
|
615
|
+
end_node: ERBEndNode | null;
|
|
595
616
|
}
|
|
596
617
|
export declare class ERBWhileNode extends Node {
|
|
597
618
|
readonly tag_opening: Token | null;
|
|
598
619
|
readonly content: Token | null;
|
|
599
620
|
readonly tag_closing: Token | null;
|
|
600
621
|
readonly statements: Node[];
|
|
601
|
-
readonly end_node:
|
|
622
|
+
readonly end_node: ERBEndNode | null;
|
|
602
623
|
static from(data: SerializedERBWhileNode): ERBWhileNode;
|
|
603
624
|
constructor(props: ERBWhileNodeProps);
|
|
604
625
|
accept(visitor: Visitor): void;
|
|
@@ -614,21 +635,21 @@ export interface SerializedERBUntilNode extends SerializedNode {
|
|
|
614
635
|
content: SerializedToken | null;
|
|
615
636
|
tag_closing: SerializedToken | null;
|
|
616
637
|
statements: SerializedNode[];
|
|
617
|
-
end_node:
|
|
638
|
+
end_node: SerializedERBEndNode | null;
|
|
618
639
|
}
|
|
619
640
|
export interface ERBUntilNodeProps extends BaseNodeProps {
|
|
620
641
|
tag_opening: Token | null;
|
|
621
642
|
content: Token | null;
|
|
622
643
|
tag_closing: Token | null;
|
|
623
644
|
statements: Node[];
|
|
624
|
-
end_node:
|
|
645
|
+
end_node: ERBEndNode | null;
|
|
625
646
|
}
|
|
626
647
|
export declare class ERBUntilNode extends Node {
|
|
627
648
|
readonly tag_opening: Token | null;
|
|
628
649
|
readonly content: Token | null;
|
|
629
650
|
readonly tag_closing: Token | null;
|
|
630
651
|
readonly statements: Node[];
|
|
631
|
-
readonly end_node:
|
|
652
|
+
readonly end_node: ERBEndNode | null;
|
|
632
653
|
static from(data: SerializedERBUntilNode): ERBUntilNode;
|
|
633
654
|
constructor(props: ERBUntilNodeProps);
|
|
634
655
|
accept(visitor: Visitor): void;
|
|
@@ -644,21 +665,21 @@ export interface SerializedERBForNode extends SerializedNode {
|
|
|
644
665
|
content: SerializedToken | null;
|
|
645
666
|
tag_closing: SerializedToken | null;
|
|
646
667
|
statements: SerializedNode[];
|
|
647
|
-
end_node:
|
|
668
|
+
end_node: SerializedERBEndNode | null;
|
|
648
669
|
}
|
|
649
670
|
export interface ERBForNodeProps extends BaseNodeProps {
|
|
650
671
|
tag_opening: Token | null;
|
|
651
672
|
content: Token | null;
|
|
652
673
|
tag_closing: Token | null;
|
|
653
674
|
statements: Node[];
|
|
654
|
-
end_node:
|
|
675
|
+
end_node: ERBEndNode | null;
|
|
655
676
|
}
|
|
656
677
|
export declare class ERBForNode extends Node {
|
|
657
678
|
readonly tag_opening: Token | null;
|
|
658
679
|
readonly content: Token | null;
|
|
659
680
|
readonly tag_closing: Token | null;
|
|
660
681
|
readonly statements: Node[];
|
|
661
|
-
readonly end_node:
|
|
682
|
+
readonly end_node: ERBEndNode | null;
|
|
662
683
|
static from(data: SerializedERBForNode): ERBForNode;
|
|
663
684
|
constructor(props: ERBForNodeProps);
|
|
664
685
|
accept(visitor: Visitor): void;
|
|
@@ -674,21 +695,21 @@ export interface SerializedERBRescueNode extends SerializedNode {
|
|
|
674
695
|
content: SerializedToken | null;
|
|
675
696
|
tag_closing: SerializedToken | null;
|
|
676
697
|
statements: SerializedNode[];
|
|
677
|
-
subsequent:
|
|
698
|
+
subsequent: SerializedERBRescueNode | null;
|
|
678
699
|
}
|
|
679
700
|
export interface ERBRescueNodeProps extends BaseNodeProps {
|
|
680
701
|
tag_opening: Token | null;
|
|
681
702
|
content: Token | null;
|
|
682
703
|
tag_closing: Token | null;
|
|
683
704
|
statements: Node[];
|
|
684
|
-
subsequent:
|
|
705
|
+
subsequent: ERBRescueNode | null;
|
|
685
706
|
}
|
|
686
707
|
export declare class ERBRescueNode extends Node {
|
|
687
708
|
readonly tag_opening: Token | null;
|
|
688
709
|
readonly content: Token | null;
|
|
689
710
|
readonly tag_closing: Token | null;
|
|
690
711
|
readonly statements: Node[];
|
|
691
|
-
readonly subsequent:
|
|
712
|
+
readonly subsequent: ERBRescueNode | null;
|
|
692
713
|
static from(data: SerializedERBRescueNode): ERBRescueNode;
|
|
693
714
|
constructor(props: ERBRescueNodeProps);
|
|
694
715
|
accept(visitor: Visitor): void;
|
|
@@ -731,30 +752,30 @@ export interface SerializedERBBeginNode extends SerializedNode {
|
|
|
731
752
|
content: SerializedToken | null;
|
|
732
753
|
tag_closing: SerializedToken | null;
|
|
733
754
|
statements: SerializedNode[];
|
|
734
|
-
rescue_clause:
|
|
735
|
-
else_clause:
|
|
736
|
-
ensure_clause:
|
|
737
|
-
end_node:
|
|
755
|
+
rescue_clause: SerializedERBRescueNode | null;
|
|
756
|
+
else_clause: SerializedERBElseNode | null;
|
|
757
|
+
ensure_clause: SerializedERBEnsureNode | null;
|
|
758
|
+
end_node: SerializedERBEndNode | null;
|
|
738
759
|
}
|
|
739
760
|
export interface ERBBeginNodeProps extends BaseNodeProps {
|
|
740
761
|
tag_opening: Token | null;
|
|
741
762
|
content: Token | null;
|
|
742
763
|
tag_closing: Token | null;
|
|
743
764
|
statements: Node[];
|
|
744
|
-
rescue_clause:
|
|
745
|
-
else_clause:
|
|
746
|
-
ensure_clause:
|
|
747
|
-
end_node:
|
|
765
|
+
rescue_clause: ERBRescueNode | null;
|
|
766
|
+
else_clause: ERBElseNode | null;
|
|
767
|
+
ensure_clause: ERBEnsureNode | null;
|
|
768
|
+
end_node: ERBEndNode | null;
|
|
748
769
|
}
|
|
749
770
|
export declare class ERBBeginNode extends Node {
|
|
750
771
|
readonly tag_opening: Token | null;
|
|
751
772
|
readonly content: Token | null;
|
|
752
773
|
readonly tag_closing: Token | null;
|
|
753
774
|
readonly statements: Node[];
|
|
754
|
-
readonly rescue_clause:
|
|
755
|
-
readonly else_clause:
|
|
756
|
-
readonly ensure_clause:
|
|
757
|
-
readonly end_node:
|
|
775
|
+
readonly rescue_clause: ERBRescueNode | null;
|
|
776
|
+
readonly else_clause: ERBElseNode | null;
|
|
777
|
+
readonly ensure_clause: ERBEnsureNode | null;
|
|
778
|
+
readonly end_node: ERBEndNode | null;
|
|
758
779
|
static from(data: SerializedERBBeginNode): ERBBeginNode;
|
|
759
780
|
constructor(props: ERBBeginNodeProps);
|
|
760
781
|
accept(visitor: Visitor): void;
|
|
@@ -770,24 +791,24 @@ export interface SerializedERBUnlessNode extends SerializedNode {
|
|
|
770
791
|
content: SerializedToken | null;
|
|
771
792
|
tag_closing: SerializedToken | null;
|
|
772
793
|
statements: SerializedNode[];
|
|
773
|
-
else_clause:
|
|
774
|
-
end_node:
|
|
794
|
+
else_clause: SerializedERBElseNode | null;
|
|
795
|
+
end_node: SerializedERBEndNode | null;
|
|
775
796
|
}
|
|
776
797
|
export interface ERBUnlessNodeProps extends BaseNodeProps {
|
|
777
798
|
tag_opening: Token | null;
|
|
778
799
|
content: Token | null;
|
|
779
800
|
tag_closing: Token | null;
|
|
780
801
|
statements: Node[];
|
|
781
|
-
else_clause:
|
|
782
|
-
end_node:
|
|
802
|
+
else_clause: ERBElseNode | null;
|
|
803
|
+
end_node: ERBEndNode | null;
|
|
783
804
|
}
|
|
784
805
|
export declare class ERBUnlessNode extends Node {
|
|
785
806
|
readonly tag_opening: Token | null;
|
|
786
807
|
readonly content: Token | null;
|
|
787
808
|
readonly tag_closing: Token | null;
|
|
788
809
|
readonly statements: Node[];
|
|
789
|
-
readonly else_clause:
|
|
790
|
-
readonly end_node:
|
|
810
|
+
readonly else_clause: ERBElseNode | null;
|
|
811
|
+
readonly end_node: ERBEndNode | null;
|
|
791
812
|
static from(data: SerializedERBUnlessNode): ERBUnlessNode;
|
|
792
813
|
constructor(props: ERBUnlessNodeProps);
|
|
793
814
|
accept(visitor: Visitor): void;
|
|
@@ -848,9 +869,40 @@ export declare class ERBInNode extends Node {
|
|
|
848
869
|
toJSON(): SerializedERBInNode;
|
|
849
870
|
treeInspect(): string;
|
|
850
871
|
}
|
|
872
|
+
export type ConcreteNode = DocumentNode | LiteralNode | HTMLOpenTagNode | HTMLCloseTagNode | HTMLElementNode | HTMLAttributeValueNode | HTMLAttributeNameNode | HTMLAttributeNode | HTMLTextNode | HTMLCommentNode | HTMLDoctypeNode | XMLDeclarationNode | CDATANode | WhitespaceNode | ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
|
|
873
|
+
export declare function fromSerializedNode(node: SerializedDocumentNode): DocumentNode;
|
|
874
|
+
export declare function fromSerializedNode(node: SerializedLiteralNode): LiteralNode;
|
|
875
|
+
export declare function fromSerializedNode(node: SerializedHTMLOpenTagNode): HTMLOpenTagNode;
|
|
876
|
+
export declare function fromSerializedNode(node: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
|
|
877
|
+
export declare function fromSerializedNode(node: SerializedHTMLElementNode): HTMLElementNode;
|
|
878
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeValueNode): HTMLAttributeValueNode;
|
|
879
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
|
|
880
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeNode): HTMLAttributeNode;
|
|
881
|
+
export declare function fromSerializedNode(node: SerializedHTMLTextNode): HTMLTextNode;
|
|
882
|
+
export declare function fromSerializedNode(node: SerializedHTMLCommentNode): HTMLCommentNode;
|
|
883
|
+
export declare function fromSerializedNode(node: SerializedHTMLDoctypeNode): HTMLDoctypeNode;
|
|
884
|
+
export declare function fromSerializedNode(node: SerializedXMLDeclarationNode): XMLDeclarationNode;
|
|
885
|
+
export declare function fromSerializedNode(node: SerializedCDATANode): CDATANode;
|
|
886
|
+
export declare function fromSerializedNode(node: SerializedWhitespaceNode): WhitespaceNode;
|
|
887
|
+
export declare function fromSerializedNode(node: SerializedERBContentNode): ERBContentNode;
|
|
888
|
+
export declare function fromSerializedNode(node: SerializedERBEndNode): ERBEndNode;
|
|
889
|
+
export declare function fromSerializedNode(node: SerializedERBElseNode): ERBElseNode;
|
|
890
|
+
export declare function fromSerializedNode(node: SerializedERBIfNode): ERBIfNode;
|
|
891
|
+
export declare function fromSerializedNode(node: SerializedERBBlockNode): ERBBlockNode;
|
|
892
|
+
export declare function fromSerializedNode(node: SerializedERBWhenNode): ERBWhenNode;
|
|
893
|
+
export declare function fromSerializedNode(node: SerializedERBCaseNode): ERBCaseNode;
|
|
894
|
+
export declare function fromSerializedNode(node: SerializedERBCaseMatchNode): ERBCaseMatchNode;
|
|
895
|
+
export declare function fromSerializedNode(node: SerializedERBWhileNode): ERBWhileNode;
|
|
896
|
+
export declare function fromSerializedNode(node: SerializedERBUntilNode): ERBUntilNode;
|
|
897
|
+
export declare function fromSerializedNode(node: SerializedERBForNode): ERBForNode;
|
|
898
|
+
export declare function fromSerializedNode(node: SerializedERBRescueNode): ERBRescueNode;
|
|
899
|
+
export declare function fromSerializedNode(node: SerializedERBEnsureNode): ERBEnsureNode;
|
|
900
|
+
export declare function fromSerializedNode(node: SerializedERBBeginNode): ERBBeginNode;
|
|
901
|
+
export declare function fromSerializedNode(node: SerializedERBUnlessNode): ERBUnlessNode;
|
|
902
|
+
export declare function fromSerializedNode(node: SerializedERBYieldNode): ERBYieldNode;
|
|
903
|
+
export declare function fromSerializedNode(node: SerializedERBInNode): ERBInNode;
|
|
851
904
|
export declare function fromSerializedNode(node: SerializedNode): Node;
|
|
852
|
-
export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "
|
|
905
|
+
export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "AST_HTML_ELEMENT_NODE" | "AST_HTML_ATTRIBUTE_VALUE_NODE" | "AST_HTML_ATTRIBUTE_NAME_NODE" | "AST_HTML_ATTRIBUTE_NODE" | "AST_HTML_TEXT_NODE" | "AST_HTML_COMMENT_NODE" | "AST_HTML_DOCTYPE_NODE" | "AST_XML_DECLARATION_NODE" | "AST_CDATA_NODE" | "AST_WHITESPACE_NODE" | "AST_ERB_CONTENT_NODE" | "AST_ERB_END_NODE" | "AST_ERB_ELSE_NODE" | "AST_ERB_IF_NODE" | "AST_ERB_BLOCK_NODE" | "AST_ERB_WHEN_NODE" | "AST_ERB_CASE_NODE" | "AST_ERB_CASE_MATCH_NODE" | "AST_ERB_WHILE_NODE" | "AST_ERB_UNTIL_NODE" | "AST_ERB_FOR_NODE" | "AST_ERB_RESCUE_NODE" | "AST_ERB_ENSURE_NODE" | "AST_ERB_BEGIN_NODE" | "AST_ERB_UNLESS_NODE" | "AST_ERB_YIELD_NODE" | "AST_ERB_IN_NODE";
|
|
853
906
|
export type ERBNodeType = Extract<NodeType, `AST_ERB_${string}`>;
|
|
854
907
|
export type ERBNode = ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
|
|
855
908
|
export declare const ERBNodeClasses: (typeof ERBContentNode | typeof ERBEndNode | typeof ERBElseNode | typeof ERBIfNode | typeof ERBBlockNode | typeof ERBWhenNode | typeof ERBCaseNode | typeof ERBCaseMatchNode | typeof ERBWhileNode | typeof ERBUntilNode | typeof ERBForNode | typeof ERBRescueNode | typeof ERBEnsureNode | typeof ERBBeginNode | typeof ERBUnlessNode | typeof ERBYieldNode | typeof ERBInNode)[];
|
|
856
|
-
export declare function isERBNode(node: Node): node is ERBNode;
|
package/dist/types/visitor.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Node, DocumentNode, LiteralNode, HTMLOpenTagNode, HTMLCloseTagNode,
|
|
1
|
+
import { Node, DocumentNode, LiteralNode, HTMLOpenTagNode, HTMLCloseTagNode, HTMLElementNode, HTMLAttributeValueNode, HTMLAttributeNameNode, HTMLAttributeNode, HTMLTextNode, HTMLCommentNode, HTMLDoctypeNode, XMLDeclarationNode, CDATANode, WhitespaceNode, ERBContentNode, ERBEndNode, ERBElseNode, ERBIfNode, ERBBlockNode, ERBWhenNode, ERBCaseNode, ERBCaseMatchNode, ERBWhileNode, ERBUntilNode, ERBForNode, ERBRescueNode, ERBEnsureNode, ERBBeginNode, ERBUnlessNode, ERBYieldNode, ERBInNode } from "./nodes.js";
|
|
2
2
|
export declare class Visitor {
|
|
3
3
|
visit(node: Node | null | undefined): void;
|
|
4
4
|
visitAll(nodes: (Node | null | undefined)[]): void;
|
|
@@ -7,7 +7,6 @@ export declare class Visitor {
|
|
|
7
7
|
visitLiteralNode(node: LiteralNode): void;
|
|
8
8
|
visitHTMLOpenTagNode(node: HTMLOpenTagNode): void;
|
|
9
9
|
visitHTMLCloseTagNode(node: HTMLCloseTagNode): void;
|
|
10
|
-
visitHTMLSelfCloseTagNode(node: HTMLSelfCloseTagNode): void;
|
|
11
10
|
visitHTMLElementNode(node: HTMLElementNode): void;
|
|
12
11
|
visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void;
|
|
13
12
|
visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void;
|
|
@@ -15,6 +14,8 @@ export declare class Visitor {
|
|
|
15
14
|
visitHTMLTextNode(node: HTMLTextNode): void;
|
|
16
15
|
visitHTMLCommentNode(node: HTMLCommentNode): void;
|
|
17
16
|
visitHTMLDoctypeNode(node: HTMLDoctypeNode): void;
|
|
17
|
+
visitXMLDeclarationNode(node: XMLDeclarationNode): void;
|
|
18
|
+
visitCDATANode(node: CDATANode): void;
|
|
18
19
|
visitWhitespaceNode(node: WhitespaceNode): void;
|
|
19
20
|
visitERBContentNode(node: ERBContentNode): void;
|
|
20
21
|
visitERBEndNode(node: ERBEndNode): void;
|