@herb-tools/core 0.7.3 → 0.7.5
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 +59 -5
- package/dist/herb-core.browser.js.map +1 -1
- package/dist/herb-core.cjs +59 -5
- package/dist/herb-core.cjs.map +1 -1
- package/dist/herb-core.esm.js +59 -5
- package/dist/herb-core.esm.js.map +1 -1
- package/dist/herb-core.umd.js +59 -5
- package/dist/herb-core.umd.js.map +1 -1
- package/dist/types/visitor.d.ts +46 -2
- package/package.json +1 -1
- package/src/errors.ts +1 -1
- package/src/node-type-guards.ts +1 -1
- package/src/nodes.ts +1 -1
- package/src/visitor.ts +102 -2
package/dist/types/visitor.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
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
|
-
|
|
1
|
+
import { Node, ERBNode, 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
|
+
/**
|
|
3
|
+
* Interface that enforces all node visit methods are implemented
|
|
4
|
+
* This ensures that any class implementing IVisitor must have a visit method for every node type
|
|
5
|
+
*/
|
|
6
|
+
export interface IVisitor {
|
|
3
7
|
visit(node: Node | null | undefined): void;
|
|
4
8
|
visitAll(nodes: (Node | null | undefined)[]): void;
|
|
5
9
|
visitChildNodes(node: Node): void;
|
|
@@ -34,4 +38,44 @@ export declare class Visitor {
|
|
|
34
38
|
visitERBUnlessNode(node: ERBUnlessNode): void;
|
|
35
39
|
visitERBYieldNode(node: ERBYieldNode): void;
|
|
36
40
|
visitERBInNode(node: ERBInNode): void;
|
|
41
|
+
visitNode(node: Node): void;
|
|
42
|
+
visitERBNode(node: ERBNode): void;
|
|
43
|
+
}
|
|
44
|
+
export declare class Visitor implements IVisitor {
|
|
45
|
+
visit(node: Node | null | undefined): void;
|
|
46
|
+
visitAll(nodes: (Node | null | undefined)[]): void;
|
|
47
|
+
visitChildNodes(node: Node): void;
|
|
48
|
+
visitNode(_node: Node): void;
|
|
49
|
+
visitERBNode(_node: ERBNode): void;
|
|
50
|
+
visitDocumentNode(node: DocumentNode): void;
|
|
51
|
+
visitLiteralNode(node: LiteralNode): void;
|
|
52
|
+
visitHTMLOpenTagNode(node: HTMLOpenTagNode): void;
|
|
53
|
+
visitHTMLCloseTagNode(node: HTMLCloseTagNode): void;
|
|
54
|
+
visitHTMLElementNode(node: HTMLElementNode): void;
|
|
55
|
+
visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void;
|
|
56
|
+
visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void;
|
|
57
|
+
visitHTMLAttributeNode(node: HTMLAttributeNode): void;
|
|
58
|
+
visitHTMLTextNode(node: HTMLTextNode): void;
|
|
59
|
+
visitHTMLCommentNode(node: HTMLCommentNode): void;
|
|
60
|
+
visitHTMLDoctypeNode(node: HTMLDoctypeNode): void;
|
|
61
|
+
visitXMLDeclarationNode(node: XMLDeclarationNode): void;
|
|
62
|
+
visitCDATANode(node: CDATANode): void;
|
|
63
|
+
visitWhitespaceNode(node: WhitespaceNode): void;
|
|
64
|
+
visitERBContentNode(node: ERBContentNode): void;
|
|
65
|
+
visitERBEndNode(node: ERBEndNode): void;
|
|
66
|
+
visitERBElseNode(node: ERBElseNode): void;
|
|
67
|
+
visitERBIfNode(node: ERBIfNode): void;
|
|
68
|
+
visitERBBlockNode(node: ERBBlockNode): void;
|
|
69
|
+
visitERBWhenNode(node: ERBWhenNode): void;
|
|
70
|
+
visitERBCaseNode(node: ERBCaseNode): void;
|
|
71
|
+
visitERBCaseMatchNode(node: ERBCaseMatchNode): void;
|
|
72
|
+
visitERBWhileNode(node: ERBWhileNode): void;
|
|
73
|
+
visitERBUntilNode(node: ERBUntilNode): void;
|
|
74
|
+
visitERBForNode(node: ERBForNode): void;
|
|
75
|
+
visitERBRescueNode(node: ERBRescueNode): void;
|
|
76
|
+
visitERBEnsureNode(node: ERBEnsureNode): void;
|
|
77
|
+
visitERBBeginNode(node: ERBBeginNode): void;
|
|
78
|
+
visitERBUnlessNode(node: ERBUnlessNode): void;
|
|
79
|
+
visitERBYieldNode(node: ERBYieldNode): void;
|
|
80
|
+
visitERBInNode(node: ERBInNode): void;
|
|
37
81
|
}
|
package/package.json
CHANGED
package/src/errors.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.
|
|
2
|
+
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.5/templates/javascript/packages/core/src/errors.ts.erb
|
|
3
3
|
|
|
4
4
|
import { Location, SerializedLocation } from "./location.js"
|
|
5
5
|
import { Token, SerializedToken } from "./token.js"
|
package/src/node-type-guards.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.
|
|
2
|
+
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.5/templates/javascript/packages/core/src/node-type-guards.ts.erb
|
|
3
3
|
|
|
4
4
|
import type { Node, NodeType, ERBNode } from "./nodes.js"
|
|
5
5
|
|
package/src/nodes.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.
|
|
2
|
+
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.5/templates/javascript/packages/core/src/nodes.ts.erb
|
|
3
3
|
|
|
4
4
|
import { Location } from "./location.js"
|
|
5
5
|
import { Token, SerializedToken } from "./token.js"
|
package/src/visitor.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.
|
|
2
|
+
// be modified manually. See /Users/marcoroth/Development/herb-release-0.7.5/templates/javascript/packages/core/src/visitor.ts.erb
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
Node,
|
|
6
|
+
ERBNode,
|
|
6
7
|
DocumentNode,
|
|
7
8
|
LiteralNode,
|
|
8
9
|
HTMLOpenTagNode,
|
|
@@ -36,7 +37,50 @@ import {
|
|
|
36
37
|
ERBInNode,
|
|
37
38
|
} from "./nodes.js"
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Interface that enforces all node visit methods are implemented
|
|
42
|
+
* This ensures that any class implementing IVisitor must have a visit method for every node type
|
|
43
|
+
*/
|
|
44
|
+
export interface IVisitor {
|
|
45
|
+
visit(node: Node | null | undefined): void
|
|
46
|
+
visitAll(nodes: (Node | null | undefined)[]): void
|
|
47
|
+
visitChildNodes(node: Node): void
|
|
48
|
+
visitDocumentNode(node: DocumentNode): void
|
|
49
|
+
visitLiteralNode(node: LiteralNode): void
|
|
50
|
+
visitHTMLOpenTagNode(node: HTMLOpenTagNode): void
|
|
51
|
+
visitHTMLCloseTagNode(node: HTMLCloseTagNode): void
|
|
52
|
+
visitHTMLElementNode(node: HTMLElementNode): void
|
|
53
|
+
visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void
|
|
54
|
+
visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void
|
|
55
|
+
visitHTMLAttributeNode(node: HTMLAttributeNode): void
|
|
56
|
+
visitHTMLTextNode(node: HTMLTextNode): void
|
|
57
|
+
visitHTMLCommentNode(node: HTMLCommentNode): void
|
|
58
|
+
visitHTMLDoctypeNode(node: HTMLDoctypeNode): void
|
|
59
|
+
visitXMLDeclarationNode(node: XMLDeclarationNode): void
|
|
60
|
+
visitCDATANode(node: CDATANode): void
|
|
61
|
+
visitWhitespaceNode(node: WhitespaceNode): void
|
|
62
|
+
visitERBContentNode(node: ERBContentNode): void
|
|
63
|
+
visitERBEndNode(node: ERBEndNode): void
|
|
64
|
+
visitERBElseNode(node: ERBElseNode): void
|
|
65
|
+
visitERBIfNode(node: ERBIfNode): void
|
|
66
|
+
visitERBBlockNode(node: ERBBlockNode): void
|
|
67
|
+
visitERBWhenNode(node: ERBWhenNode): void
|
|
68
|
+
visitERBCaseNode(node: ERBCaseNode): void
|
|
69
|
+
visitERBCaseMatchNode(node: ERBCaseMatchNode): void
|
|
70
|
+
visitERBWhileNode(node: ERBWhileNode): void
|
|
71
|
+
visitERBUntilNode(node: ERBUntilNode): void
|
|
72
|
+
visitERBForNode(node: ERBForNode): void
|
|
73
|
+
visitERBRescueNode(node: ERBRescueNode): void
|
|
74
|
+
visitERBEnsureNode(node: ERBEnsureNode): void
|
|
75
|
+
visitERBBeginNode(node: ERBBeginNode): void
|
|
76
|
+
visitERBUnlessNode(node: ERBUnlessNode): void
|
|
77
|
+
visitERBYieldNode(node: ERBYieldNode): void
|
|
78
|
+
visitERBInNode(node: ERBInNode): void
|
|
79
|
+
visitNode(node: Node): void
|
|
80
|
+
visitERBNode(node: ERBNode): void
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export class Visitor implements IVisitor {
|
|
40
84
|
visit(node: Node | null | undefined): void {
|
|
41
85
|
if (!node) return
|
|
42
86
|
|
|
@@ -51,127 +95,183 @@ export class Visitor {
|
|
|
51
95
|
node.compactChildNodes().forEach(node => node.accept(this))
|
|
52
96
|
}
|
|
53
97
|
|
|
98
|
+
visitNode(_node: Node): void {
|
|
99
|
+
// Default implementation does nothing
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
visitERBNode(_node: ERBNode): void {
|
|
103
|
+
// Default implementation does nothing
|
|
104
|
+
}
|
|
105
|
+
|
|
54
106
|
visitDocumentNode(node: DocumentNode): void {
|
|
107
|
+
this.visitNode(node)
|
|
55
108
|
this.visitChildNodes(node)
|
|
56
109
|
}
|
|
57
110
|
|
|
58
111
|
visitLiteralNode(node: LiteralNode): void {
|
|
112
|
+
this.visitNode(node)
|
|
59
113
|
this.visitChildNodes(node)
|
|
60
114
|
}
|
|
61
115
|
|
|
62
116
|
visitHTMLOpenTagNode(node: HTMLOpenTagNode): void {
|
|
117
|
+
this.visitNode(node)
|
|
63
118
|
this.visitChildNodes(node)
|
|
64
119
|
}
|
|
65
120
|
|
|
66
121
|
visitHTMLCloseTagNode(node: HTMLCloseTagNode): void {
|
|
122
|
+
this.visitNode(node)
|
|
67
123
|
this.visitChildNodes(node)
|
|
68
124
|
}
|
|
69
125
|
|
|
70
126
|
visitHTMLElementNode(node: HTMLElementNode): void {
|
|
127
|
+
this.visitNode(node)
|
|
71
128
|
this.visitChildNodes(node)
|
|
72
129
|
}
|
|
73
130
|
|
|
74
131
|
visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void {
|
|
132
|
+
this.visitNode(node)
|
|
75
133
|
this.visitChildNodes(node)
|
|
76
134
|
}
|
|
77
135
|
|
|
78
136
|
visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void {
|
|
137
|
+
this.visitNode(node)
|
|
79
138
|
this.visitChildNodes(node)
|
|
80
139
|
}
|
|
81
140
|
|
|
82
141
|
visitHTMLAttributeNode(node: HTMLAttributeNode): void {
|
|
142
|
+
this.visitNode(node)
|
|
83
143
|
this.visitChildNodes(node)
|
|
84
144
|
}
|
|
85
145
|
|
|
86
146
|
visitHTMLTextNode(node: HTMLTextNode): void {
|
|
147
|
+
this.visitNode(node)
|
|
87
148
|
this.visitChildNodes(node)
|
|
88
149
|
}
|
|
89
150
|
|
|
90
151
|
visitHTMLCommentNode(node: HTMLCommentNode): void {
|
|
152
|
+
this.visitNode(node)
|
|
91
153
|
this.visitChildNodes(node)
|
|
92
154
|
}
|
|
93
155
|
|
|
94
156
|
visitHTMLDoctypeNode(node: HTMLDoctypeNode): void {
|
|
157
|
+
this.visitNode(node)
|
|
95
158
|
this.visitChildNodes(node)
|
|
96
159
|
}
|
|
97
160
|
|
|
98
161
|
visitXMLDeclarationNode(node: XMLDeclarationNode): void {
|
|
162
|
+
this.visitNode(node)
|
|
99
163
|
this.visitChildNodes(node)
|
|
100
164
|
}
|
|
101
165
|
|
|
102
166
|
visitCDATANode(node: CDATANode): void {
|
|
167
|
+
this.visitNode(node)
|
|
103
168
|
this.visitChildNodes(node)
|
|
104
169
|
}
|
|
105
170
|
|
|
106
171
|
visitWhitespaceNode(node: WhitespaceNode): void {
|
|
172
|
+
this.visitNode(node)
|
|
107
173
|
this.visitChildNodes(node)
|
|
108
174
|
}
|
|
109
175
|
|
|
110
176
|
visitERBContentNode(node: ERBContentNode): void {
|
|
177
|
+
this.visitNode(node)
|
|
178
|
+
this.visitERBNode(node)
|
|
111
179
|
this.visitChildNodes(node)
|
|
112
180
|
}
|
|
113
181
|
|
|
114
182
|
visitERBEndNode(node: ERBEndNode): void {
|
|
183
|
+
this.visitNode(node)
|
|
184
|
+
this.visitERBNode(node)
|
|
115
185
|
this.visitChildNodes(node)
|
|
116
186
|
}
|
|
117
187
|
|
|
118
188
|
visitERBElseNode(node: ERBElseNode): void {
|
|
189
|
+
this.visitNode(node)
|
|
190
|
+
this.visitERBNode(node)
|
|
119
191
|
this.visitChildNodes(node)
|
|
120
192
|
}
|
|
121
193
|
|
|
122
194
|
visitERBIfNode(node: ERBIfNode): void {
|
|
195
|
+
this.visitNode(node)
|
|
196
|
+
this.visitERBNode(node)
|
|
123
197
|
this.visitChildNodes(node)
|
|
124
198
|
}
|
|
125
199
|
|
|
126
200
|
visitERBBlockNode(node: ERBBlockNode): void {
|
|
201
|
+
this.visitNode(node)
|
|
202
|
+
this.visitERBNode(node)
|
|
127
203
|
this.visitChildNodes(node)
|
|
128
204
|
}
|
|
129
205
|
|
|
130
206
|
visitERBWhenNode(node: ERBWhenNode): void {
|
|
207
|
+
this.visitNode(node)
|
|
208
|
+
this.visitERBNode(node)
|
|
131
209
|
this.visitChildNodes(node)
|
|
132
210
|
}
|
|
133
211
|
|
|
134
212
|
visitERBCaseNode(node: ERBCaseNode): void {
|
|
213
|
+
this.visitNode(node)
|
|
214
|
+
this.visitERBNode(node)
|
|
135
215
|
this.visitChildNodes(node)
|
|
136
216
|
}
|
|
137
217
|
|
|
138
218
|
visitERBCaseMatchNode(node: ERBCaseMatchNode): void {
|
|
219
|
+
this.visitNode(node)
|
|
220
|
+
this.visitERBNode(node)
|
|
139
221
|
this.visitChildNodes(node)
|
|
140
222
|
}
|
|
141
223
|
|
|
142
224
|
visitERBWhileNode(node: ERBWhileNode): void {
|
|
225
|
+
this.visitNode(node)
|
|
226
|
+
this.visitERBNode(node)
|
|
143
227
|
this.visitChildNodes(node)
|
|
144
228
|
}
|
|
145
229
|
|
|
146
230
|
visitERBUntilNode(node: ERBUntilNode): void {
|
|
231
|
+
this.visitNode(node)
|
|
232
|
+
this.visitERBNode(node)
|
|
147
233
|
this.visitChildNodes(node)
|
|
148
234
|
}
|
|
149
235
|
|
|
150
236
|
visitERBForNode(node: ERBForNode): void {
|
|
237
|
+
this.visitNode(node)
|
|
238
|
+
this.visitERBNode(node)
|
|
151
239
|
this.visitChildNodes(node)
|
|
152
240
|
}
|
|
153
241
|
|
|
154
242
|
visitERBRescueNode(node: ERBRescueNode): void {
|
|
243
|
+
this.visitNode(node)
|
|
244
|
+
this.visitERBNode(node)
|
|
155
245
|
this.visitChildNodes(node)
|
|
156
246
|
}
|
|
157
247
|
|
|
158
248
|
visitERBEnsureNode(node: ERBEnsureNode): void {
|
|
249
|
+
this.visitNode(node)
|
|
250
|
+
this.visitERBNode(node)
|
|
159
251
|
this.visitChildNodes(node)
|
|
160
252
|
}
|
|
161
253
|
|
|
162
254
|
visitERBBeginNode(node: ERBBeginNode): void {
|
|
255
|
+
this.visitNode(node)
|
|
256
|
+
this.visitERBNode(node)
|
|
163
257
|
this.visitChildNodes(node)
|
|
164
258
|
}
|
|
165
259
|
|
|
166
260
|
visitERBUnlessNode(node: ERBUnlessNode): void {
|
|
261
|
+
this.visitNode(node)
|
|
262
|
+
this.visitERBNode(node)
|
|
167
263
|
this.visitChildNodes(node)
|
|
168
264
|
}
|
|
169
265
|
|
|
170
266
|
visitERBYieldNode(node: ERBYieldNode): void {
|
|
267
|
+
this.visitNode(node)
|
|
268
|
+
this.visitERBNode(node)
|
|
171
269
|
this.visitChildNodes(node)
|
|
172
270
|
}
|
|
173
271
|
|
|
174
272
|
visitERBInNode(node: ERBInNode): void {
|
|
273
|
+
this.visitNode(node)
|
|
274
|
+
this.visitERBNode(node)
|
|
175
275
|
this.visitChildNodes(node)
|
|
176
276
|
}
|
|
177
277
|
|