@lwc/template-compiler 2.23.6 → 2.25.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/README.md +1 -0
- package/dist/commonjs/codegen/codegen.js +2 -0
- package/dist/commonjs/codegen/codegen.js.map +1 -1
- package/dist/commonjs/codegen/helpers.js +20 -17
- package/dist/commonjs/codegen/helpers.js.map +1 -1
- package/dist/commonjs/codegen/index.js +32 -1
- package/dist/commonjs/codegen/index.js.map +1 -1
- package/dist/commonjs/config.js +2 -0
- package/dist/commonjs/config.js.map +1 -1
- package/dist/commonjs/parser/constants.js +3 -11
- package/dist/commonjs/parser/constants.js.map +1 -1
- package/dist/commonjs/parser/index.js +177 -27
- package/dist/commonjs/parser/index.js.map +1 -1
- package/dist/commonjs/parser/parser.js +111 -20
- package/dist/commonjs/parser/parser.js.map +1 -1
- package/dist/commonjs/shared/ast.js +81 -1
- package/dist/commonjs/shared/ast.js.map +1 -1
- package/dist/commonjs/shared/renderer-hooks.js +2 -0
- package/dist/commonjs/shared/renderer-hooks.js.map +1 -1
- package/dist/commonjs/shared/types.js +15 -1
- package/dist/commonjs/shared/types.js.map +1 -1
- package/dist/types/codegen/codegen.d.ts +2 -0
- package/dist/types/codegen/helpers.d.ts +2 -3
- package/dist/types/config.d.ts +4 -0
- package/dist/types/parser/constants.d.ts +0 -9
- package/dist/types/parser/parser.d.ts +30 -12
- package/dist/types/shared/ast.d.ts +20 -7
- package/dist/types/shared/types.d.ts +55 -18
- package/package.json +3 -3
|
@@ -28,17 +28,22 @@ class ParserCtx {
|
|
|
28
28
|
this.seenIds = new Set();
|
|
29
29
|
this.seenSlots = new Set();
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
32
|
-
* Each
|
|
33
|
-
*
|
|
31
|
+
* 'elementScopes' keeps track of the hierarchy of ParentNodes as the parser
|
|
32
|
+
* traverses the parse5 AST. Each 'elementScope' is an array where each node in
|
|
33
|
+
* the array corresponds to either an IfBlock, ElseifBlock, ElseBlock, ForEach, ForOf, If, Element, Component, or Slot.
|
|
34
34
|
*
|
|
35
|
-
* Currently, each
|
|
36
|
-
* Note: Not all
|
|
35
|
+
* Currently, each elementScope has a hierarchy of IfBlock > ForBlock > If > Element | Component | Slot.
|
|
36
|
+
* Note: Not all elementScopes will have all the nodes listed above, but when they do, they will appear in this order.
|
|
37
37
|
* We do not keep track of template nodes.
|
|
38
38
|
*
|
|
39
39
|
* Each scope corresponds to the original parse5.Element node.
|
|
40
40
|
*/
|
|
41
|
-
this.
|
|
41
|
+
this.elementScopes = [];
|
|
42
|
+
/**
|
|
43
|
+
* 'siblingScopes' keeps track of the context from one sibling node to another.
|
|
44
|
+
* This holds the info needed to properly parse lwc:if, lwc:elseif, and lwc:else directives.
|
|
45
|
+
*/
|
|
46
|
+
this.siblingScopes = [];
|
|
42
47
|
this.source = source;
|
|
43
48
|
this.config = config;
|
|
44
49
|
this.renderMode = types_1.LWCDirectiveRenderMode.shadow;
|
|
@@ -58,7 +63,7 @@ class ParserCtx {
|
|
|
58
63
|
* This method flattens the scopes into a single array for traversal.
|
|
59
64
|
*/
|
|
60
65
|
*ancestors(element) {
|
|
61
|
-
const ancestors =
|
|
66
|
+
const ancestors = this.elementScopes.flat();
|
|
62
67
|
const start = element ? ancestors.indexOf(element) : ancestors.length - 1;
|
|
63
68
|
for (let i = start; i >= 0; i--) {
|
|
64
69
|
yield { current: ancestors[i], parent: ancestors[i - 1] };
|
|
@@ -91,27 +96,113 @@ class ParserCtx {
|
|
|
91
96
|
* @param {function} predicate - This callback is called once for each sibling in the current scope
|
|
92
97
|
* until it finds one where predicate returns true.
|
|
93
98
|
*/
|
|
94
|
-
|
|
95
|
-
const currentScope = this.
|
|
96
|
-
|
|
97
|
-
return sibling || null;
|
|
99
|
+
findInCurrentElementScope(predicate) {
|
|
100
|
+
const currentScope = this.currentElementScope() || [];
|
|
101
|
+
return currentScope.find(predicate) || null;
|
|
98
102
|
}
|
|
99
|
-
|
|
100
|
-
this.
|
|
103
|
+
beginElementScope() {
|
|
104
|
+
this.elementScopes.push([]);
|
|
101
105
|
}
|
|
102
|
-
|
|
103
|
-
this.
|
|
106
|
+
endElementScope() {
|
|
107
|
+
const scope = this.elementScopes.pop();
|
|
108
|
+
return scope ? scope[0] : undefined;
|
|
104
109
|
}
|
|
105
|
-
|
|
106
|
-
const currentScope = this.
|
|
110
|
+
addNodeCurrentElementScope(node) {
|
|
111
|
+
const currentScope = this.currentElementScope();
|
|
107
112
|
/* istanbul ignore if */
|
|
108
113
|
if (!currentScope) {
|
|
109
|
-
throw new Error("Can't invoke
|
|
114
|
+
throw new Error("Can't invoke addNodeCurrentElementScope if there is no current scope");
|
|
110
115
|
}
|
|
111
116
|
currentScope.push(node);
|
|
112
117
|
}
|
|
113
|
-
|
|
114
|
-
return this.
|
|
118
|
+
hasSeenSlot(name) {
|
|
119
|
+
return this.seenSlotsFromAncestorIfTree().has(name);
|
|
120
|
+
}
|
|
121
|
+
addSeenSlot(name) {
|
|
122
|
+
const currentSeenSlots = this.seenSlotsFromAncestorIfTree();
|
|
123
|
+
if (currentSeenSlots) {
|
|
124
|
+
currentSeenSlots.add(name);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.seenSlots.add(name);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
currentElementScope() {
|
|
131
|
+
return this.elementScopes[this.elementScopes.length - 1];
|
|
132
|
+
}
|
|
133
|
+
beginSiblingScope() {
|
|
134
|
+
this.siblingScopes.push({
|
|
135
|
+
ancestorIfContext: this.currentIfContext() || this.ancestorIfContext(),
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
endSiblingScope() {
|
|
139
|
+
this.siblingScopes.pop();
|
|
140
|
+
}
|
|
141
|
+
beginIfChain(node) {
|
|
142
|
+
const currentSiblingContext = this.currentSiblingContext();
|
|
143
|
+
if (!currentSiblingContext) {
|
|
144
|
+
throw new Error('Cannot invoke beginIfChain if there is currently no sibling context');
|
|
145
|
+
}
|
|
146
|
+
const currentIfContext = this.currentIfContext();
|
|
147
|
+
if (currentIfContext) {
|
|
148
|
+
throw new Error('Should not invoke beginIfChain if an if context already exists. First end the current chain before starting a new one.');
|
|
149
|
+
}
|
|
150
|
+
const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();
|
|
151
|
+
currentSiblingContext.ifContext = {
|
|
152
|
+
currentNode: node,
|
|
153
|
+
seenSlots: [new Set(previouslySeenSlots)],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
appendToIfChain(node) {
|
|
157
|
+
const currentIfContext = this.currentIfContext();
|
|
158
|
+
if (!currentIfContext) {
|
|
159
|
+
throw new Error('Cannot invoke appendToIfChain without first setting the if context.');
|
|
160
|
+
}
|
|
161
|
+
currentIfContext.currentNode = node;
|
|
162
|
+
const previouslySeenSlots = this.seenSlotsFromAncestorIfTree();
|
|
163
|
+
currentIfContext.seenSlots.push(new Set(previouslySeenSlots));
|
|
164
|
+
}
|
|
165
|
+
endIfChain() {
|
|
166
|
+
const currentIfContext = this.currentIfContext();
|
|
167
|
+
if (!currentIfContext) {
|
|
168
|
+
throw new Error('Cannot invoke endIfChain if there is currently no if context');
|
|
169
|
+
}
|
|
170
|
+
// Merge seen slot names from the current if chain into the parent scope.
|
|
171
|
+
const seenSlotsInAncestorIfTree = this.seenSlotsFromAncestorIfTree();
|
|
172
|
+
for (const seenSlots of currentIfContext.seenSlots) {
|
|
173
|
+
for (const name of seenSlots) {
|
|
174
|
+
seenSlotsInAncestorIfTree.add(name);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const currentSiblingContext = this.currentSiblingContext();
|
|
178
|
+
if (currentSiblingContext) {
|
|
179
|
+
currentSiblingContext.ifContext = undefined;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
getSiblingIfNode() {
|
|
183
|
+
var _a;
|
|
184
|
+
return (_a = this.currentIfContext()) === null || _a === void 0 ? void 0 : _a.currentNode;
|
|
185
|
+
}
|
|
186
|
+
isParsingSiblingIfBlock() {
|
|
187
|
+
return !!this.currentIfContext();
|
|
188
|
+
}
|
|
189
|
+
currentSiblingContext() {
|
|
190
|
+
return this.siblingScopes[this.siblingScopes.length - 1];
|
|
191
|
+
}
|
|
192
|
+
currentIfContext() {
|
|
193
|
+
var _a;
|
|
194
|
+
return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ifContext;
|
|
195
|
+
}
|
|
196
|
+
ancestorIfContext() {
|
|
197
|
+
var _a;
|
|
198
|
+
return (_a = this.currentSiblingContext()) === null || _a === void 0 ? void 0 : _a.ancestorIfContext;
|
|
199
|
+
}
|
|
200
|
+
seenSlotsFromAncestorIfTree() {
|
|
201
|
+
const ancestorIfContext = this.ancestorIfContext();
|
|
202
|
+
if (ancestorIfContext) {
|
|
203
|
+
return ancestorIfContext.seenSlots[ancestorIfContext.seenSlots.length - 1];
|
|
204
|
+
}
|
|
205
|
+
return this.seenSlots;
|
|
115
206
|
}
|
|
116
207
|
/**
|
|
117
208
|
* This method recovers from diagnostic errors that are encountered when fn is invoked.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parser/parser.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,wCAQqB;AAErB,uCAAmF;AAEnF,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isSpreadDirective = exports.isDomDirective = exports.isDynamicDirective = exports.isParentNode = exports.isElementDirective = exports.isConditionalBlock = exports.isConditionalParentBlock = exports.isElseBlock = exports.isElseifBlock = exports.isIfBlock = exports.isIf = exports.isForBlock = exports.isForEach = exports.isForOf = exports.isBooleanLiteral = exports.isStringLiteral = exports.isExpression = exports.isComment = exports.isText = exports.isBaseElement = exports.isSlot = exports.isComponent = exports.isRoot = exports.isElement = exports.property = exports.attribute = exports.renderModeDirective = exports.preserveCommentsDirective = exports.refDirective = exports.innerHTMLDirective = exports.domDirective = exports.spreadDirective = exports.dynamicDirective = exports.keyDirective = exports.eventListener = exports.elseBlockNode = exports.elseifBlockNode = exports.ifBlockNode = exports.ifNode = exports.forOf = exports.forEach = exports.literal = exports.sourceLocation = exports.elementSourceLocation = exports.comment = exports.text = exports.slot = exports.component = exports.element = exports.root = void 0;
|
|
4
|
+
exports.isProperty = exports.isPreserveCommentsDirective = exports.isRenderModeDirective = exports.isKeyDirective = exports.isRefDirective = exports.isInnerHTMLDirective = void 0;
|
|
4
5
|
/*
|
|
5
6
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
6
7
|
* All rights reserved.
|
|
@@ -141,6 +142,35 @@ function ifNode(modifier, condition, elementLocation, directiveLocation) {
|
|
|
141
142
|
};
|
|
142
143
|
}
|
|
143
144
|
exports.ifNode = ifNode;
|
|
145
|
+
function ifBlockNode(condition, elementLocation, directiveLocation) {
|
|
146
|
+
return {
|
|
147
|
+
type: 'IfBlock',
|
|
148
|
+
condition,
|
|
149
|
+
location: elementLocation,
|
|
150
|
+
directiveLocation,
|
|
151
|
+
children: [],
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
exports.ifBlockNode = ifBlockNode;
|
|
155
|
+
function elseifBlockNode(condition, elementLocation, directiveLocation) {
|
|
156
|
+
return {
|
|
157
|
+
type: 'ElseifBlock',
|
|
158
|
+
condition,
|
|
159
|
+
location: elementLocation,
|
|
160
|
+
directiveLocation,
|
|
161
|
+
children: [],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
exports.elseifBlockNode = elseifBlockNode;
|
|
165
|
+
function elseBlockNode(elementLocation, directiveLocation) {
|
|
166
|
+
return {
|
|
167
|
+
type: 'ElseBlock',
|
|
168
|
+
location: elementLocation,
|
|
169
|
+
directiveLocation,
|
|
170
|
+
children: [],
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
exports.elseBlockNode = elseBlockNode;
|
|
144
174
|
function eventListener(name, handler, location) {
|
|
145
175
|
return {
|
|
146
176
|
type: 'EventListener',
|
|
@@ -168,6 +198,15 @@ function dynamicDirective(value, location) {
|
|
|
168
198
|
};
|
|
169
199
|
}
|
|
170
200
|
exports.dynamicDirective = dynamicDirective;
|
|
201
|
+
function spreadDirective(value, location) {
|
|
202
|
+
return {
|
|
203
|
+
type: 'Directive',
|
|
204
|
+
name: 'Spread',
|
|
205
|
+
value,
|
|
206
|
+
location,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
exports.spreadDirective = spreadDirective;
|
|
171
210
|
function domDirective(lwcDomAttr, location) {
|
|
172
211
|
return {
|
|
173
212
|
type: 'Directive',
|
|
@@ -186,6 +225,15 @@ function innerHTMLDirective(value, location) {
|
|
|
186
225
|
};
|
|
187
226
|
}
|
|
188
227
|
exports.innerHTMLDirective = innerHTMLDirective;
|
|
228
|
+
function refDirective(value, location) {
|
|
229
|
+
return {
|
|
230
|
+
type: 'Directive',
|
|
231
|
+
name: 'Ref',
|
|
232
|
+
value,
|
|
233
|
+
location,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
exports.refDirective = refDirective;
|
|
189
237
|
function preserveCommentsDirective(preserveComments, location) {
|
|
190
238
|
return {
|
|
191
239
|
type: 'Directive',
|
|
@@ -279,6 +327,30 @@ function isIf(node) {
|
|
|
279
327
|
return node.type === 'If';
|
|
280
328
|
}
|
|
281
329
|
exports.isIf = isIf;
|
|
330
|
+
function isIfBlock(node) {
|
|
331
|
+
return node.type === 'IfBlock';
|
|
332
|
+
}
|
|
333
|
+
exports.isIfBlock = isIfBlock;
|
|
334
|
+
function isElseifBlock(node) {
|
|
335
|
+
return node.type === 'ElseifBlock';
|
|
336
|
+
}
|
|
337
|
+
exports.isElseifBlock = isElseifBlock;
|
|
338
|
+
function isElseBlock(node) {
|
|
339
|
+
return node.type === 'ElseBlock';
|
|
340
|
+
}
|
|
341
|
+
exports.isElseBlock = isElseBlock;
|
|
342
|
+
function isConditionalParentBlock(node) {
|
|
343
|
+
return isIfBlock(node) || isElseifBlock(node);
|
|
344
|
+
}
|
|
345
|
+
exports.isConditionalParentBlock = isConditionalParentBlock;
|
|
346
|
+
function isConditionalBlock(node) {
|
|
347
|
+
return isIfBlock(node) || isElseifBlock(node) || isElseBlock(node);
|
|
348
|
+
}
|
|
349
|
+
exports.isConditionalBlock = isConditionalBlock;
|
|
350
|
+
function isElementDirective(node) {
|
|
351
|
+
return isConditionalBlock(node) || isForBlock(node) || isIf(node);
|
|
352
|
+
}
|
|
353
|
+
exports.isElementDirective = isElementDirective;
|
|
282
354
|
function isParentNode(node) {
|
|
283
355
|
return isBaseElement(node) || isRoot(node) || isForBlock(node) || isIf(node);
|
|
284
356
|
}
|
|
@@ -291,10 +363,18 @@ function isDomDirective(directive) {
|
|
|
291
363
|
return directive.name === 'Dom';
|
|
292
364
|
}
|
|
293
365
|
exports.isDomDirective = isDomDirective;
|
|
366
|
+
function isSpreadDirective(directive) {
|
|
367
|
+
return directive.name === 'Spread';
|
|
368
|
+
}
|
|
369
|
+
exports.isSpreadDirective = isSpreadDirective;
|
|
294
370
|
function isInnerHTMLDirective(directive) {
|
|
295
371
|
return directive.name === 'InnerHTML';
|
|
296
372
|
}
|
|
297
373
|
exports.isInnerHTMLDirective = isInnerHTMLDirective;
|
|
374
|
+
function isRefDirective(directive) {
|
|
375
|
+
return directive.name === 'Ref';
|
|
376
|
+
}
|
|
377
|
+
exports.isRefDirective = isRefDirective;
|
|
298
378
|
function isKeyDirective(directive) {
|
|
299
379
|
return directive.name === 'Key';
|
|
300
380
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/shared/ast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/shared/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-hooks.js","sourceRoot":"","sources":["../../../src/shared/renderer-hooks.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,wCAAwD;AA0CxD;;GAEG;AACU,QAAA,cAAc,GAA6C;IACpE,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,gBAAgB;IAC3B,GAAG,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"renderer-hooks.js","sourceRoot":"","sources":["../../../src/shared/renderer-hooks.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,wCAAwD;AA0CxD;;GAEG;AACU,QAAA,cAAc,GAA6C;IACpE,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,gBAAgB;IAC3B,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,YAAY;CACvB,CAAC;AAEF,SAAS,YAAY,CAAC,OAAoB,EAAE,KAAY;IACpD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,EAAE;QACnB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,4CAA4C;QAC5C,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE;YAClB,6EAA6E;YAC7E,kEAAkE;YAClE,0FAA0F;YAC1F,oCAAoC;YACpC,IAAA,kBAAS,EACL,OAAO,CAAC,IAAI,KAAK,WAAW,EAC5B,uBAAc,CAAC,sCAAsC,EACrD,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,oBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;YACF,OAAO,IAAI,CAAC;SACf;KACJ;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,sCAAsC;IACtC,IAAI,aAAa,EAAE;QACf,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5D,oEAAoE;QACpE,IAAI,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QACD,qFAAqF;QACrF,IACI,UAAU,CAAC,IAAI,KAAK,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAChE;YACE,OAAO,IAAI,CAAC;SACf;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,4BAA4B,CAAC,OAAoB,EAAE,KAAY;IAC3E,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;QACnC,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,OAAO,YAAY,CAAC;SACvB;aAAM;YACH,iBAAiB,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;SAC3D;KACJ;IACD,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAZD,oEAYC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LWCDirectiveRenderMode = exports.LWCDirectiveDomMode = void 0;
|
|
3
|
+
exports.RootDirectiveName = exports.ElementDirectiveName = exports.LWCDirectiveRenderMode = exports.LWCDirectiveDomMode = void 0;
|
|
4
4
|
var LWCDirectiveDomMode;
|
|
5
5
|
(function (LWCDirectiveDomMode) {
|
|
6
6
|
LWCDirectiveDomMode["manual"] = "manual";
|
|
@@ -10,4 +10,18 @@ var LWCDirectiveRenderMode;
|
|
|
10
10
|
LWCDirectiveRenderMode["shadow"] = "shadow";
|
|
11
11
|
LWCDirectiveRenderMode["light"] = "light";
|
|
12
12
|
})(LWCDirectiveRenderMode = exports.LWCDirectiveRenderMode || (exports.LWCDirectiveRenderMode = {}));
|
|
13
|
+
var ElementDirectiveName;
|
|
14
|
+
(function (ElementDirectiveName) {
|
|
15
|
+
ElementDirectiveName["Dom"] = "lwc:dom";
|
|
16
|
+
ElementDirectiveName["Dynamic"] = "lwc:dynamic";
|
|
17
|
+
ElementDirectiveName["InnerHTML"] = "lwc:inner-html";
|
|
18
|
+
ElementDirectiveName["Ref"] = "lwc:ref";
|
|
19
|
+
ElementDirectiveName["Spread"] = "lwc:spread";
|
|
20
|
+
ElementDirectiveName["Key"] = "key";
|
|
21
|
+
})(ElementDirectiveName = exports.ElementDirectiveName || (exports.ElementDirectiveName = {}));
|
|
22
|
+
var RootDirectiveName;
|
|
23
|
+
(function (RootDirectiveName) {
|
|
24
|
+
RootDirectiveName["PreserveComments"] = "lwc:preserve-comments";
|
|
25
|
+
RootDirectiveName["RenderMode"] = "lwc:render-mode";
|
|
26
|
+
})(RootDirectiveName = exports.RootDirectiveName || (exports.RootDirectiveName = {}));
|
|
13
27
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;AACrB,CAAC,EAFW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAE9B;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;AACrB,CAAC,EAFW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAE9B;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC;AAwOD,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC5B,uCAAe,CAAA;IACf,+CAAuB,CAAA;IACvB,oDAA4B,CAAA;IAC5B,uCAAe,CAAA;IACf,6CAAqB,CAAA;IACrB,mCAAW,CAAA;AACf,CAAC,EAPW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAO/B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,+DAA0C,CAAA;IAC1C,mDAA8B,CAAA;AAClC,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B"}
|
|
@@ -5,12 +5,11 @@ import CodeGen from './codegen';
|
|
|
5
5
|
export declare function identifierFromComponentName(name: string): t.Identifier;
|
|
6
6
|
export declare function getMemberExpressionRoot(expression: t.MemberExpression): t.Identifier;
|
|
7
7
|
export declare function objectToAST(obj: object, valueMapper: (key: string) => t.Expression): t.ObjectExpression;
|
|
8
|
-
export declare function containsDynamicChildren(children: ChildNode[]): boolean;
|
|
9
8
|
/**
|
|
10
9
|
* Returns true if the children should be flattened.
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
* a dynamic directive or a slot inside a light dom element.
|
|
11
|
+
* This function searches through the children to determine if flattening needs to occur in the runtime.
|
|
12
|
+
* Children should be flattened if they contain an iterator, a dynamic directive or a slot inside a light dom element.
|
|
14
13
|
*/
|
|
15
14
|
export declare function shouldFlatten(codeGen: CodeGen, children: ChildNode[]): boolean;
|
|
16
15
|
/**
|
package/dist/types/config.d.ts
CHANGED
|
@@ -23,6 +23,10 @@ export interface Config {
|
|
|
23
23
|
* When false, the template compiler will not generate optimized code for static content.
|
|
24
24
|
*/
|
|
25
25
|
enableStaticContentOptimization?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* When true, enables `lwc:spread` directive.
|
|
28
|
+
*/
|
|
29
|
+
enableLwcSpread?: boolean;
|
|
26
30
|
}
|
|
27
31
|
export declare type NormalizedConfig = Required<Omit<Config, 'customRendererConfig'>> & Partial<Pick<Config, 'customRendererConfig'>>;
|
|
28
32
|
export declare function normalizeConfig(config: Config): NormalizedConfig;
|
|
@@ -5,16 +5,7 @@ export declare const VALID_IF_MODIFIER: Set<string>;
|
|
|
5
5
|
export declare const ITERATOR_RE: RegExp;
|
|
6
6
|
export declare const EVENT_HANDLER_RE: RegExp;
|
|
7
7
|
export declare const EVENT_HANDLER_NAME_RE: RegExp;
|
|
8
|
-
export declare const LWC_DIRECTIVES: {
|
|
9
|
-
DOM: string;
|
|
10
|
-
DYNAMIC: string;
|
|
11
|
-
INNER_HTML: string;
|
|
12
|
-
};
|
|
13
8
|
export declare const LWC_DIRECTIVE_SET: Set<string>;
|
|
14
|
-
export declare const ROOT_TEMPLATE_DIRECTIVES: {
|
|
15
|
-
PRESERVE_COMMENTS: string;
|
|
16
|
-
RENDER_MODE: string;
|
|
17
|
-
};
|
|
18
9
|
export declare const ID_REFERENCING_ATTRIBUTES_SET: Set<string>;
|
|
19
10
|
export declare const DATA_RE: RegExp;
|
|
20
11
|
export declare const SUPPORTED_SVG_TAGS: Set<string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CompilerDiagnostic, LWCErrorInfo } from '@lwc/errors';
|
|
2
2
|
import { NormalizedConfig } from '../config';
|
|
3
|
-
import { Root, SourceLocation, ParentNode, BaseNode, LWCDirectiveRenderMode } from '../shared/types';
|
|
3
|
+
import { Root, SourceLocation, ParentNode, BaseNode, LWCDirectiveRenderMode, IfBlock, ElseifBlock, ElseBlock } from '../shared/types';
|
|
4
4
|
interface ParentWrapper {
|
|
5
5
|
parent: ParentNode | null;
|
|
6
6
|
current: ParentNode;
|
|
@@ -12,17 +12,22 @@ export default class ParserCtx {
|
|
|
12
12
|
readonly seenIds: Set<string>;
|
|
13
13
|
readonly seenSlots: Set<string>;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* Each
|
|
17
|
-
*
|
|
15
|
+
* 'elementScopes' keeps track of the hierarchy of ParentNodes as the parser
|
|
16
|
+
* traverses the parse5 AST. Each 'elementScope' is an array where each node in
|
|
17
|
+
* the array corresponds to either an IfBlock, ElseifBlock, ElseBlock, ForEach, ForOf, If, Element, Component, or Slot.
|
|
18
18
|
*
|
|
19
|
-
* Currently, each
|
|
20
|
-
* Note: Not all
|
|
19
|
+
* Currently, each elementScope has a hierarchy of IfBlock > ForBlock > If > Element | Component | Slot.
|
|
20
|
+
* Note: Not all elementScopes will have all the nodes listed above, but when they do, they will appear in this order.
|
|
21
21
|
* We do not keep track of template nodes.
|
|
22
22
|
*
|
|
23
23
|
* Each scope corresponds to the original parse5.Element node.
|
|
24
24
|
*/
|
|
25
|
-
private readonly
|
|
25
|
+
private readonly elementScopes;
|
|
26
|
+
/**
|
|
27
|
+
* 'siblingScopes' keeps track of the context from one sibling node to another.
|
|
28
|
+
* This holds the info needed to properly parse lwc:if, lwc:elseif, and lwc:else directives.
|
|
29
|
+
*/
|
|
30
|
+
private readonly siblingScopes;
|
|
26
31
|
renderMode: LWCDirectiveRenderMode;
|
|
27
32
|
preserveComments: boolean;
|
|
28
33
|
constructor(source: String, config: NormalizedConfig);
|
|
@@ -49,11 +54,24 @@ export default class ParserCtx {
|
|
|
49
54
|
* @param {function} predicate - This callback is called once for each sibling in the current scope
|
|
50
55
|
* until it finds one where predicate returns true.
|
|
51
56
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
findInCurrentElementScope<A extends ParentNode>(predicate: (node: ParentNode) => node is A): A | null;
|
|
58
|
+
beginElementScope(): void;
|
|
59
|
+
endElementScope(): ParentNode | undefined;
|
|
60
|
+
addNodeCurrentElementScope(node: ParentNode): void;
|
|
61
|
+
hasSeenSlot(name: string): boolean;
|
|
62
|
+
addSeenSlot(name: string): void;
|
|
63
|
+
private currentElementScope;
|
|
64
|
+
beginSiblingScope(): void;
|
|
65
|
+
endSiblingScope(): void;
|
|
66
|
+
beginIfChain(node: IfBlock): void;
|
|
67
|
+
appendToIfChain(node: ElseifBlock | ElseBlock): void;
|
|
68
|
+
endIfChain(): void;
|
|
69
|
+
getSiblingIfNode(): IfBlock | ElseifBlock | ElseBlock | undefined;
|
|
70
|
+
isParsingSiblingIfBlock(): boolean;
|
|
71
|
+
private currentSiblingContext;
|
|
72
|
+
private currentIfContext;
|
|
73
|
+
private ancestorIfContext;
|
|
74
|
+
private seenSlotsFromAncestorIfTree;
|
|
57
75
|
/**
|
|
58
76
|
* This method recovers from diagnostic errors that are encountered when fn is invoked.
|
|
59
77
|
* All other errors are considered compiler errors and can not be recovered from.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as parse5 from 'parse5';
|
|
2
|
-
import { Literal, SourceLocation, Element, Component, Expression, Comment, Text, ForEach, ForBlock, Slot, Identifier, Root, EventListener, KeyDirective, DynamicDirective, DomDirective, PreserveCommentsDirective, RenderModeDirective, Attribute, Property, ParentNode, BaseNode, ForOf, LWCDirectiveRenderMode, If, ElementSourceLocation, InnerHTMLDirective,
|
|
2
|
+
import { Literal, SourceLocation, Element, Component, Expression, Comment, Text, ForEach, ForBlock, Slot, Identifier, Root, EventListener, KeyDirective, DynamicDirective, DomDirective, PreserveCommentsDirective, RenderModeDirective, Attribute, Property, ParentNode, BaseNode, ForOf, LWCDirectiveRenderMode, If, IfBlock, ElseBlock, ElseifBlock, ElementSourceLocation, InnerHTMLDirective, BaseElement, LWCDirectiveDomMode, RefDirective, SpreadDirective, ElementDirective, RootDirective } from './types';
|
|
3
3
|
export declare function root(parse5ElmLocation: parse5.ElementLocation): Root;
|
|
4
4
|
export declare function element(parse5Elm: parse5.Element, parse5ElmLocation: parse5.ElementLocation): Element;
|
|
5
5
|
export declare function component(parse5Elm: parse5.Element, parse5ElmLocation: parse5.ElementLocation): Component;
|
|
@@ -12,11 +12,16 @@ export declare function literal<T extends string | boolean>(value: T): Literal<T
|
|
|
12
12
|
export declare function forEach(expression: Expression, elementLocation: SourceLocation, directiveLocation: SourceLocation, item: Identifier, index?: Identifier): ForEach;
|
|
13
13
|
export declare function forOf(expression: Expression, iterator: Identifier, elementLocation: SourceLocation, directiveLocation: SourceLocation): ForOf;
|
|
14
14
|
export declare function ifNode(modifier: string, condition: Expression, elementLocation: SourceLocation, directiveLocation: SourceLocation): If;
|
|
15
|
+
export declare function ifBlockNode(condition: Expression, elementLocation: SourceLocation, directiveLocation: SourceLocation): IfBlock;
|
|
16
|
+
export declare function elseifBlockNode(condition: Expression, elementLocation: SourceLocation, directiveLocation: SourceLocation): ElseifBlock;
|
|
17
|
+
export declare function elseBlockNode(elementLocation: SourceLocation, directiveLocation: SourceLocation): ElseBlock;
|
|
15
18
|
export declare function eventListener(name: string, handler: Expression, location: SourceLocation): EventListener;
|
|
16
19
|
export declare function keyDirective(value: Expression, location: SourceLocation): KeyDirective;
|
|
17
20
|
export declare function dynamicDirective(value: Expression, location: SourceLocation): DynamicDirective;
|
|
21
|
+
export declare function spreadDirective(value: Expression, location: SourceLocation): SpreadDirective;
|
|
18
22
|
export declare function domDirective(lwcDomAttr: LWCDirectiveDomMode, location: SourceLocation): DomDirective;
|
|
19
23
|
export declare function innerHTMLDirective(value: Expression | Literal<string>, location: SourceLocation): InnerHTMLDirective;
|
|
24
|
+
export declare function refDirective(value: Literal<string>, location: SourceLocation): RefDirective;
|
|
20
25
|
export declare function preserveCommentsDirective(preserveComments: boolean, location: SourceLocation): PreserveCommentsDirective;
|
|
21
26
|
export declare function renderModeDirective(renderMode: LWCDirectiveRenderMode, location: SourceLocation): RenderModeDirective;
|
|
22
27
|
export declare function attribute(name: string, value: Expression | Literal, location: SourceLocation): Attribute;
|
|
@@ -35,11 +40,19 @@ export declare function isForOf(node: BaseNode): node is ForOf;
|
|
|
35
40
|
export declare function isForEach(node: BaseNode): node is ForEach;
|
|
36
41
|
export declare function isForBlock(node: BaseNode): node is ForBlock;
|
|
37
42
|
export declare function isIf(node: BaseNode): node is If;
|
|
43
|
+
export declare function isIfBlock(node: BaseNode): node is IfBlock;
|
|
44
|
+
export declare function isElseifBlock(node: BaseNode): node is ElseifBlock;
|
|
45
|
+
export declare function isElseBlock(node: BaseNode): node is ElseBlock;
|
|
46
|
+
export declare function isConditionalParentBlock(node: BaseNode): node is IfBlock | ElseifBlock;
|
|
47
|
+
export declare function isConditionalBlock(node: BaseNode): node is IfBlock | ElseifBlock | ElseBlock;
|
|
48
|
+
export declare function isElementDirective(node: BaseNode): node is IfBlock | ElseifBlock | ElseBlock | ForBlock | If;
|
|
38
49
|
export declare function isParentNode(node: BaseNode): node is ParentNode;
|
|
39
|
-
export declare function isDynamicDirective(directive:
|
|
40
|
-
export declare function isDomDirective(directive:
|
|
41
|
-
export declare function
|
|
42
|
-
export declare function
|
|
43
|
-
export declare function
|
|
44
|
-
export declare function
|
|
50
|
+
export declare function isDynamicDirective(directive: ElementDirective): directive is DynamicDirective;
|
|
51
|
+
export declare function isDomDirective(directive: ElementDirective): directive is DomDirective;
|
|
52
|
+
export declare function isSpreadDirective(directive: ElementDirective): directive is SpreadDirective;
|
|
53
|
+
export declare function isInnerHTMLDirective(directive: ElementDirective): directive is InnerHTMLDirective;
|
|
54
|
+
export declare function isRefDirective(directive: ElementDirective): directive is RefDirective;
|
|
55
|
+
export declare function isKeyDirective(directive: ElementDirective): directive is KeyDirective;
|
|
56
|
+
export declare function isRenderModeDirective(directive: RootDirective): directive is RenderModeDirective;
|
|
57
|
+
export declare function isPreserveCommentsDirective(directive: RootDirective): directive is PreserveCommentsDirective;
|
|
45
58
|
export declare function isProperty(node: BaseNode): node is Property;
|