Skip to content

Commit 630cf36

Browse files
authored
feat: support parse wrapper of templates (#29)
* feat: support parse wrapper of templates * fix types * fix types * update * export type
1 parent 88fc019 commit 630cf36

File tree

83 files changed

+720
-491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+720
-491
lines changed

src/constants/node-types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,9 @@ export enum NodeTypes {
3636
DoctypeAttributeValue = "DoctypeAttributeValue",
3737
DoctypeAttributeWrapperStart = "DoctypeAttributeWrapperStart",
3838
DoctypeAttributeWrapperEnd = "DoctypeAttributeWrapperEnd",
39+
40+
OpenTemplate = "OpenTemplate",
41+
Template = "Template",
42+
CloseTemplate = "CloseTemplate",
43+
Part = "Part",
3944
}

src/constants/token-types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,8 @@ export enum TokenTypes {
2424
OpenStyleTagEnd = "OpenStyleTagEnd",
2525
StyleTagContent = "StyleTagContent",
2626
CloseStyleTag = "CloseStyleTag",
27+
Part = "Part",
28+
OpenTemplate = "OpenTemplate",
29+
Template = "Template",
30+
CloseTemplate = "CloseTemplate",
2731
}

src/parser/__tests__/__snapshots__/token-adapter.spec.ts.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ exports[`parse basic 1`] = `
1818
"line": 1,
1919
},
2020
},
21+
"parts": [],
2122
"range": [
2223
5,
2324
12,
2425
],
25-
"templates": [],
2626
"type": "Text",
2727
"value": "content",
2828
},
@@ -164,11 +164,11 @@ exports[`parse basic 1`] = `
164164
"line": 1,
165165
},
166166
},
167+
"parts": [],
167168
"range": [
168169
5,
169170
12,
170171
],
171-
"templates": [],
172172
"type": "Text",
173173
"value": "content",
174174
},
@@ -212,11 +212,11 @@ exports[`parse token adapter 1`] = `
212212
"line": 2,
213213
},
214214
},
215+
"parts": [],
215216
"range": [
216217
6,
217218
13,
218219
],
219-
"templates": [],
220220
"type": "Text",
221221
"value": "content",
222222
},
@@ -358,11 +358,11 @@ exports[`parse token adapter 1`] = `
358358
"line": 2,
359359
},
360360
},
361+
"parts": [],
361362
"range": [
362363
6,
363364
13,
364365
],
365-
"templates": [],
366366
"type": "Text",
367367
"value": "content",
368368
},

src/parser/parse.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Options } from "../types/parse";
77

88
export function parse(html: string, options?: Options): ParseResult {
99
const tokenAdapter = (options && options.tokenAdapter) || defaultTokenAdapter;
10-
const { tokens } = tokenize(html, tokenAdapter, options?.templateRanges);
10+
const { tokens } = tokenize(html, tokenAdapter, options?.templateInfos);
1111
const { ast } = constructTree(tokens);
1212
return {
1313
ast: clearParent(ast),

src/tokenizer/__tests__/__output__/attributes-apostrophe.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default [
4545
column: 2,
4646
},
4747
},
48-
templates: [],
48+
parts: [],
4949
},
5050
{
5151
type: TokenTypes.OpenTagStart,
@@ -76,7 +76,7 @@ export default [
7676
column: 13,
7777
},
7878
},
79-
templates: [],
79+
parts: [],
8080
},
8181
{
8282
type: TokenTypes.AttributeAssignment,
@@ -122,7 +122,7 @@ export default [
122122
column: 25,
123123
},
124124
},
125-
templates: [],
125+
parts: [],
126126
},
127127
{
128128
type: TokenTypes.AttributeValueWrapperEnd,
@@ -153,7 +153,7 @@ export default [
153153
column: 36,
154154
},
155155
},
156-
templates: [],
156+
parts: [],
157157
},
158158
{
159159
type: TokenTypes.AttributeAssignment,
@@ -199,7 +199,7 @@ export default [
199199
column: 48,
200200
},
201201
},
202-
templates: [],
202+
parts: [],
203203
},
204204
{
205205
type: TokenTypes.AttributeValueWrapperEnd,
@@ -245,7 +245,7 @@ export default [
245245
column: 4,
246246
},
247247
},
248-
templates: [],
248+
parts: [],
249249
},
250250
{
251251
type: TokenTypes.OpenTagStart,
@@ -291,7 +291,7 @@ export default [
291291
column: 6,
292292
},
293293
},
294-
templates: [],
294+
parts: [],
295295
},
296296
{
297297
type: TokenTypes.OpenTagStart,
@@ -322,7 +322,7 @@ export default [
322322
column: 19,
323323
},
324324
},
325-
templates: [],
325+
parts: [],
326326
},
327327
{
328328
type: TokenTypes.AttributeAssignment,
@@ -368,7 +368,7 @@ export default [
368368
column: 33,
369369
},
370370
},
371-
templates: [],
371+
parts: [],
372372
},
373373
{
374374
type: TokenTypes.AttributeValueWrapperEnd,
@@ -399,7 +399,7 @@ export default [
399399
column: 19,
400400
},
401401
},
402-
templates: [],
402+
parts: [],
403403
},
404404
{
405405
type: TokenTypes.AttributeAssignment,
@@ -445,7 +445,7 @@ export default [
445445
line: 10,
446446
},
447447
},
448-
templates: [],
448+
parts: [],
449449
},
450450
{
451451
type: TokenTypes.AttributeValueWrapperEnd,
@@ -491,7 +491,7 @@ export default [
491491
line: 14,
492492
},
493493
},
494-
templates: [],
494+
parts: [],
495495
},
496496
{
497497
type: TokenTypes.CloseTag,
@@ -522,7 +522,7 @@ export default [
522522
column: 4,
523523
},
524524
},
525-
templates: [],
525+
parts: [],
526526
},
527527
{
528528
type: TokenTypes.CloseTag,
@@ -553,7 +553,7 @@ export default [
553553
column: 2,
554554
},
555555
},
556-
templates: [],
556+
parts: [],
557557
},
558558
{
559559
type: TokenTypes.CloseTag,
@@ -584,7 +584,7 @@ export default [
584584
column: 0,
585585
},
586586
},
587-
templates: [],
587+
parts: [],
588588
},
589589
{
590590
type: TokenTypes.CloseTag,
@@ -615,6 +615,6 @@ export default [
615615
column: 0,
616616
},
617617
},
618-
templates: [],
618+
parts: [],
619619
},
620620
];

src/tokenizer/__tests__/__output__/attributes-bare-wrong-quote.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const OUTPUT: AnyToken[] = [
3131
column: 9,
3232
},
3333
},
34-
templates: [],
34+
parts: [],
3535
},
3636
{
3737
type: TokenTypes.AttributeAssignment,
@@ -62,7 +62,7 @@ const OUTPUT: AnyToken[] = [
6262
column: 18,
6363
},
6464
},
65-
templates: [],
65+
parts: [],
6666
},
6767
{
6868
type: TokenTypes.OpenTagEnd,

src/tokenizer/__tests__/__output__/attributes-bare.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default [
3030
column: 8,
3131
},
3232
},
33-
templates: [],
33+
parts: [],
3434
},
3535
{
3636
type: TokenTypes.AttributeAssignment,
@@ -61,7 +61,7 @@ export default [
6161
column: 16,
6262
},
6363
},
64-
templates: [],
64+
parts: [],
6565
},
6666
{
6767
type: TokenTypes.AttributeKey,
@@ -77,7 +77,7 @@ export default [
7777
column: 29,
7878
},
7979
},
80-
templates: [],
80+
parts: [],
8181
},
8282
{
8383
type: TokenTypes.AttributeAssignment,
@@ -108,7 +108,7 @@ export default [
108108
column: 37,
109109
},
110110
},
111-
templates: [],
111+
parts: [],
112112
},
113113
{
114114
type: TokenTypes.OpenTagEnd,
@@ -154,7 +154,7 @@ export default [
154154
column: 0,
155155
},
156156
},
157-
templates: [],
157+
parts: [],
158158
},
159159
{
160160
type: TokenTypes.OpenTagStart,
@@ -185,7 +185,7 @@ export default [
185185
column: 10,
186186
},
187187
},
188-
templates: [],
188+
parts: [],
189189
},
190190
{
191191
type: TokenTypes.AttributeAssignment,
@@ -216,7 +216,7 @@ export default [
216216
column: 27,
217217
},
218218
},
219-
templates: [],
219+
parts: [],
220220
},
221221
{
222222
type: TokenTypes.OpenTagEnd,
@@ -247,7 +247,7 @@ export default [
247247
column: 2,
248248
},
249249
},
250-
templates: [],
250+
parts: [],
251251
},
252252
{
253253
type: TokenTypes.OpenTagStart,
@@ -278,7 +278,7 @@ export default [
278278
column: 21,
279279
},
280280
},
281-
templates: [],
281+
parts: [],
282282
},
283283
{
284284
type: TokenTypes.AttributeAssignment,
@@ -309,7 +309,7 @@ export default [
309309
column: 26,
310310
},
311311
},
312-
templates: [],
312+
parts: [],
313313
},
314314
{
315315
type: TokenTypes.AttributeKey,
@@ -325,7 +325,7 @@ export default [
325325
column: 12,
326326
},
327327
},
328-
templates: [],
328+
parts: [],
329329
},
330330
{
331331
type: TokenTypes.AttributeAssignment,
@@ -356,7 +356,7 @@ export default [
356356
column: 19,
357357
},
358358
},
359-
templates: [],
359+
parts: [],
360360
},
361361
{
362362
type: TokenTypes.OpenTagEnd,
@@ -387,7 +387,7 @@ export default [
387387
column: 2,
388388
},
389389
},
390-
templates: [],
390+
parts: [],
391391
},
392392
{
393393
type: TokenTypes.CloseTag,
@@ -418,7 +418,7 @@ export default [
418418
column: 0,
419419
},
420420
},
421-
templates: [],
421+
parts: [],
422422
},
423423
{
424424
type: TokenTypes.CloseTag,
@@ -449,6 +449,6 @@ export default [
449449
column: 0,
450450
},
451451
},
452-
templates: [],
452+
parts: [],
453453
},
454454
];

0 commit comments

Comments
 (0)