@lwc/template-compiler 2.7.2 → 2.9.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.
Files changed (58) hide show
  1. package/dist/commonjs/codegen/codegen.js +89 -16
  2. package/dist/commonjs/codegen/codegen.js.map +1 -1
  3. package/dist/commonjs/codegen/formatters/function.js +3 -1
  4. package/dist/commonjs/codegen/formatters/function.js.map +1 -1
  5. package/dist/commonjs/codegen/formatters/module.js +3 -1
  6. package/dist/commonjs/codegen/formatters/module.js.map +1 -1
  7. package/dist/commonjs/codegen/helpers.js +34 -20
  8. package/dist/commonjs/codegen/helpers.js.map +1 -1
  9. package/dist/commonjs/codegen/index.js +184 -194
  10. package/dist/commonjs/codegen/index.js.map +1 -1
  11. package/dist/commonjs/codegen/optimize.js +115 -0
  12. package/dist/commonjs/codegen/optimize.js.map +1 -0
  13. package/dist/commonjs/index.js +12 -5
  14. package/dist/commonjs/index.js.map +1 -1
  15. package/dist/commonjs/parser/attribute.js +5 -7
  16. package/dist/commonjs/parser/attribute.js.map +1 -1
  17. package/dist/commonjs/parser/constants.js +1 -10
  18. package/dist/commonjs/parser/constants.js.map +1 -1
  19. package/dist/commonjs/parser/expression.js +5 -2
  20. package/dist/commonjs/parser/expression.js.map +1 -1
  21. package/dist/commonjs/parser/html.js +18 -1
  22. package/dist/commonjs/parser/html.js.map +1 -1
  23. package/dist/commonjs/parser/index.js +371 -342
  24. package/dist/commonjs/parser/index.js.map +1 -1
  25. package/dist/commonjs/parser/parse5Errors.js +77 -0
  26. package/dist/commonjs/parser/parse5Errors.js.map +1 -0
  27. package/dist/commonjs/parser/parser.js +85 -30
  28. package/dist/commonjs/parser/parser.js.map +1 -1
  29. package/dist/commonjs/shared/ast.js +303 -0
  30. package/dist/commonjs/shared/ast.js.map +1 -0
  31. package/dist/commonjs/shared/estree.js +9 -1
  32. package/dist/commonjs/shared/estree.js.map +1 -1
  33. package/dist/commonjs/shared/parse5.js +1 -15
  34. package/dist/commonjs/shared/parse5.js.map +1 -1
  35. package/dist/commonjs/shared/types.js +1 -7
  36. package/dist/commonjs/shared/types.js.map +1 -1
  37. package/dist/types/codegen/codegen.d.ts +25 -3
  38. package/dist/types/codegen/helpers.d.ts +11 -5
  39. package/dist/types/codegen/index.d.ts +2 -2
  40. package/dist/types/codegen/optimize.d.ts +33 -0
  41. package/dist/types/index.d.ts +1 -2
  42. package/dist/types/parser/attribute.d.ts +7 -7
  43. package/dist/types/parser/constants.d.ts +0 -9
  44. package/dist/types/parser/expression.d.ts +3 -4
  45. package/dist/types/parser/parse5Errors.d.ts +2 -0
  46. package/dist/types/parser/parser.d.ts +57 -28
  47. package/dist/types/shared/ast.d.ts +45 -0
  48. package/dist/types/shared/estree.d.ts +2 -2
  49. package/dist/types/shared/parse5.d.ts +0 -1
  50. package/dist/types/shared/types.d.ts +129 -86
  51. package/package.json +4 -4
  52. package/LICENSE +0 -10
  53. package/dist/commonjs/codegen/scope.js +0 -61
  54. package/dist/commonjs/codegen/scope.js.map +0 -1
  55. package/dist/commonjs/shared/ir.js +0 -90
  56. package/dist/commonjs/shared/ir.js.map +0 -1
  57. package/dist/types/codegen/scope.d.ts +0 -8
  58. package/dist/types/shared/ir.d.ts +0 -15
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isProperty = exports.isPreserveCommentsDirective = exports.isRenderModeDirective = exports.isKeyDirective = exports.isInnerHTMLDirective = exports.isDomDirective = exports.isDynamicDirective = exports.isParentNode = 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.innerHTMLDirective = exports.domDirective = exports.dynamicDirective = exports.keyDirective = exports.eventListener = 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
+ function root(parse5ElmLocation) {
5
+ return {
6
+ type: 'Root',
7
+ location: elementSourceLocation(parse5ElmLocation),
8
+ directives: [],
9
+ children: [],
10
+ };
11
+ }
12
+ exports.root = root;
13
+ function element(parse5Elm, parse5ElmLocation) {
14
+ return {
15
+ type: 'Element',
16
+ name: parse5Elm.nodeName,
17
+ namespace: parse5Elm.namespaceURI,
18
+ location: elementSourceLocation(parse5ElmLocation),
19
+ attributes: [],
20
+ properties: [],
21
+ directives: [],
22
+ listeners: [],
23
+ children: [],
24
+ };
25
+ }
26
+ exports.element = element;
27
+ function component(parse5Elm, parse5ElmLocation) {
28
+ return {
29
+ type: 'Component',
30
+ name: parse5Elm.nodeName,
31
+ location: elementSourceLocation(parse5ElmLocation),
32
+ attributes: [],
33
+ properties: [],
34
+ directives: [],
35
+ listeners: [],
36
+ children: [],
37
+ };
38
+ }
39
+ exports.component = component;
40
+ function slot(slotName, parse5ElmLocation) {
41
+ return {
42
+ type: 'Slot',
43
+ name: 'slot',
44
+ slotName,
45
+ location: elementSourceLocation(parse5ElmLocation),
46
+ attributes: [],
47
+ properties: [],
48
+ directives: [],
49
+ listeners: [],
50
+ children: [],
51
+ };
52
+ }
53
+ exports.slot = slot;
54
+ function text(value, parse5Location) {
55
+ return {
56
+ type: 'Text',
57
+ value,
58
+ location: sourceLocation(parse5Location),
59
+ };
60
+ }
61
+ exports.text = text;
62
+ function comment(value, parse5Location) {
63
+ return {
64
+ type: 'Comment',
65
+ value,
66
+ location: sourceLocation(parse5Location),
67
+ };
68
+ }
69
+ exports.comment = comment;
70
+ function elementSourceLocation(parse5ElmLocation) {
71
+ const elementLocation = sourceLocation(parse5ElmLocation);
72
+ const startTag = sourceLocation(parse5ElmLocation.startTag);
73
+ // endTag must be optional because Parse5 currently fails to collect end tag location for element with a tag name
74
+ // containing an upper case character (inikulin/parse5#352).
75
+ const endTag = parse5ElmLocation.endTag
76
+ ? sourceLocation(parse5ElmLocation.endTag)
77
+ : parse5ElmLocation.endTag;
78
+ return { ...elementLocation, startTag, endTag };
79
+ }
80
+ exports.elementSourceLocation = elementSourceLocation;
81
+ function sourceLocation(location) {
82
+ return {
83
+ startLine: location.startLine,
84
+ startColumn: location.startCol,
85
+ endLine: location.endLine,
86
+ endColumn: location.endCol,
87
+ start: location.startOffset,
88
+ end: location.endOffset,
89
+ };
90
+ }
91
+ exports.sourceLocation = sourceLocation;
92
+ function literal(value) {
93
+ return {
94
+ type: 'Literal',
95
+ value,
96
+ };
97
+ }
98
+ exports.literal = literal;
99
+ function forEach(expression, elementLocation, directiveLocation, item, index) {
100
+ return {
101
+ type: 'ForEach',
102
+ expression,
103
+ item,
104
+ index,
105
+ location: elementLocation,
106
+ directiveLocation,
107
+ children: [],
108
+ };
109
+ }
110
+ exports.forEach = forEach;
111
+ function forOf(expression, iterator, elementLocation, directiveLocation) {
112
+ return {
113
+ type: 'ForOf',
114
+ expression,
115
+ iterator,
116
+ location: elementLocation,
117
+ directiveLocation,
118
+ children: [],
119
+ };
120
+ }
121
+ exports.forOf = forOf;
122
+ function ifNode(modifier, condition, elementLocation, directiveLocation) {
123
+ return {
124
+ type: 'If',
125
+ modifier,
126
+ condition,
127
+ location: elementLocation,
128
+ directiveLocation,
129
+ children: [],
130
+ };
131
+ }
132
+ exports.ifNode = ifNode;
133
+ function eventListener(name, handler, location) {
134
+ return {
135
+ type: 'EventListener',
136
+ name,
137
+ handler,
138
+ location,
139
+ };
140
+ }
141
+ exports.eventListener = eventListener;
142
+ function keyDirective(value, location) {
143
+ return {
144
+ type: 'Directive',
145
+ name: 'Key',
146
+ value,
147
+ location,
148
+ };
149
+ }
150
+ exports.keyDirective = keyDirective;
151
+ function dynamicDirective(value, location) {
152
+ return {
153
+ type: 'Directive',
154
+ name: 'Dynamic',
155
+ value,
156
+ location,
157
+ };
158
+ }
159
+ exports.dynamicDirective = dynamicDirective;
160
+ function domDirective(lwcDomAttr, location) {
161
+ return {
162
+ type: 'Directive',
163
+ name: 'Dom',
164
+ value: literal(lwcDomAttr),
165
+ location,
166
+ };
167
+ }
168
+ exports.domDirective = domDirective;
169
+ function innerHTMLDirective(value, location) {
170
+ return {
171
+ type: 'Directive',
172
+ name: 'InnerHTML',
173
+ value,
174
+ location,
175
+ };
176
+ }
177
+ exports.innerHTMLDirective = innerHTMLDirective;
178
+ function preserveCommentsDirective(preserveComments, location) {
179
+ return {
180
+ type: 'Directive',
181
+ name: 'PreserveComments',
182
+ value: literal(preserveComments),
183
+ location,
184
+ };
185
+ }
186
+ exports.preserveCommentsDirective = preserveCommentsDirective;
187
+ function renderModeDirective(renderMode, location) {
188
+ return {
189
+ type: 'Directive',
190
+ name: 'RenderMode',
191
+ value: literal(renderMode),
192
+ location,
193
+ };
194
+ }
195
+ exports.renderModeDirective = renderModeDirective;
196
+ function attribute(name, value, location) {
197
+ return {
198
+ type: 'Attribute',
199
+ name,
200
+ value,
201
+ location,
202
+ };
203
+ }
204
+ exports.attribute = attribute;
205
+ function property(name, attributeName, value, location) {
206
+ return {
207
+ type: 'Property',
208
+ name,
209
+ attributeName,
210
+ value,
211
+ location,
212
+ };
213
+ }
214
+ exports.property = property;
215
+ function isElement(node) {
216
+ return node.type === 'Element';
217
+ }
218
+ exports.isElement = isElement;
219
+ function isRoot(node) {
220
+ return node.type === 'Root';
221
+ }
222
+ exports.isRoot = isRoot;
223
+ function isComponent(node) {
224
+ return node.type === 'Component';
225
+ }
226
+ exports.isComponent = isComponent;
227
+ function isSlot(node) {
228
+ return node.type === 'Slot';
229
+ }
230
+ exports.isSlot = isSlot;
231
+ function isBaseElement(node) {
232
+ return isElement(node) || isComponent(node) || isSlot(node);
233
+ }
234
+ exports.isBaseElement = isBaseElement;
235
+ function isText(node) {
236
+ return node.type === 'Text';
237
+ }
238
+ exports.isText = isText;
239
+ function isComment(node) {
240
+ return node.type === 'Comment';
241
+ }
242
+ exports.isComment = isComment;
243
+ function isExpression(node) {
244
+ return node.type === 'Identifier' || node.type === 'MemberExpression';
245
+ }
246
+ exports.isExpression = isExpression;
247
+ function isStringLiteral(node) {
248
+ return node.type === 'Literal' && typeof node.value === 'string';
249
+ }
250
+ exports.isStringLiteral = isStringLiteral;
251
+ function isBooleanLiteral(node) {
252
+ return node.type === 'Literal' && typeof node.value === 'boolean';
253
+ }
254
+ exports.isBooleanLiteral = isBooleanLiteral;
255
+ function isForOf(node) {
256
+ return node.type === 'ForOf';
257
+ }
258
+ exports.isForOf = isForOf;
259
+ function isForEach(node) {
260
+ return node.type === 'ForEach';
261
+ }
262
+ exports.isForEach = isForEach;
263
+ function isForBlock(node) {
264
+ return isForOf(node) || isForEach(node);
265
+ }
266
+ exports.isForBlock = isForBlock;
267
+ function isIf(node) {
268
+ return node.type === 'If';
269
+ }
270
+ exports.isIf = isIf;
271
+ function isParentNode(node) {
272
+ return isBaseElement(node) || isRoot(node) || isForBlock(node) || isIf(node);
273
+ }
274
+ exports.isParentNode = isParentNode;
275
+ function isDynamicDirective(directive) {
276
+ return directive.name === 'Dynamic';
277
+ }
278
+ exports.isDynamicDirective = isDynamicDirective;
279
+ function isDomDirective(directive) {
280
+ return directive.name === 'Dom';
281
+ }
282
+ exports.isDomDirective = isDomDirective;
283
+ function isInnerHTMLDirective(directive) {
284
+ return directive.name === 'InnerHTML';
285
+ }
286
+ exports.isInnerHTMLDirective = isInnerHTMLDirective;
287
+ function isKeyDirective(directive) {
288
+ return directive.name === 'Key';
289
+ }
290
+ exports.isKeyDirective = isKeyDirective;
291
+ function isRenderModeDirective(directive) {
292
+ return directive.name === 'RenderMode';
293
+ }
294
+ exports.isRenderModeDirective = isRenderModeDirective;
295
+ function isPreserveCommentsDirective(directive) {
296
+ return directive.name === 'PreserveComments';
297
+ }
298
+ exports.isPreserveCommentsDirective = isPreserveCommentsDirective;
299
+ function isProperty(node) {
300
+ return node.type === 'Property';
301
+ }
302
+ exports.isProperty = isProperty;
303
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/shared/ast.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.program = exports.exportDefaultDeclaration = exports.importSpecifier = exports.importDefaultSpecifier = exports.importDeclaration = exports.variableDeclaration = exports.variableDeclarator = exports.returnStatement = exports.blockStatement = exports.functionDeclaration = exports.functionExpression = exports.expressionStatement = exports.arrayExpression = exports.objectPattern = exports.objectExpression = exports.assignmentProperty = exports.property = exports.assignmentExpression = exports.logicalExpression = exports.binaryExpression = exports.unaryExpression = exports.conditionalExpression = exports.literal = exports.callExpression = exports.memberExpression = exports.isLiteral = exports.identifier = exports.isArrayExpression = exports.isMemberExpression = exports.isIdentifier = void 0;
3
+ exports.program = exports.exportDefaultDeclaration = exports.importSpecifier = exports.importDefaultSpecifier = exports.importDeclaration = exports.variableDeclaration = exports.variableDeclarator = exports.returnStatement = exports.blockStatement = exports.functionDeclaration = exports.functionExpression = exports.expressionStatement = exports.arrayExpression = exports.objectPattern = exports.objectExpression = exports.assignmentProperty = exports.property = exports.assignmentExpression = exports.logicalExpression = exports.binaryExpression = exports.unaryExpression = exports.conditionalExpression = exports.literal = exports.callExpression = exports.memberExpression = exports.isLiteral = exports.identifier = exports.isProperty = exports.isObjectExpression = exports.isArrayExpression = exports.isMemberExpression = exports.isIdentifier = void 0;
4
4
  function isIdentifier(node) {
5
5
  return node.type === 'Identifier';
6
6
  }
@@ -13,6 +13,14 @@ function isArrayExpression(node) {
13
13
  return node.type === 'ArrayExpression';
14
14
  }
15
15
  exports.isArrayExpression = isArrayExpression;
16
+ function isObjectExpression(node) {
17
+ return node.type === 'ObjectExpression';
18
+ }
19
+ exports.isObjectExpression = isObjectExpression;
20
+ function isProperty(node) {
21
+ return node.type === 'Property';
22
+ }
23
+ exports.isProperty = isProperty;
16
24
  function identifier(name, config) {
17
25
  return {
18
26
  type: 'Identifier',
@@ -1 +1 @@
1
- {"version":3,"file":"estree.js","sourceRoot":"","sources":["../../../src/shared/estree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"estree.js","sourceRoot":"","sources":["../../../src/shared/estree.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEmptyElementLocation = exports.getTemplateContent = exports.isTextNode = exports.isCommentNode = exports.isElementNode = void 0;
3
+ exports.getTemplateContent = exports.isTextNode = exports.isCommentNode = exports.isElementNode = void 0;
4
4
  function isElementNode(node) {
5
5
  return 'tagName' in node;
6
6
  }
@@ -17,18 +17,4 @@ function getTemplateContent(templateElement) {
17
17
  return templateElement.content;
18
18
  }
19
19
  exports.getTemplateContent = getTemplateContent;
20
- // Creates a parse5.ElementLocation where all values are set to 0.
21
- function createEmptyElementLocation() {
22
- const startTag = createEmptyStartTagLocation();
23
- const endTag = createEmptyLocation();
24
- const elementLocation = createEmptyStartTagLocation();
25
- return { ...elementLocation, startTag, endTag };
26
- }
27
- exports.createEmptyElementLocation = createEmptyElementLocation;
28
- function createEmptyStartTagLocation() {
29
- return { attrs: {}, ...createEmptyLocation() };
30
- }
31
- function createEmptyLocation() {
32
- return { startCol: 0, startOffset: 0, startLine: 0, endCol: 0, endOffset: 0, endLine: 0 };
33
- }
34
20
  //# sourceMappingURL=parse5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse5.js","sourceRoot":"","sources":["../../../src/shared/parse5.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAAC,IAAiB;IAC3C,OAAO,SAAS,IAAI,IAAI,CAAC;AAC7B,CAAC;AAFD,sCAEC;AAED,SAAgB,aAAa,CAAC,IAAiB;IAC3C,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC;AAFD,sCAEC;AAED,SAAgB,UAAU,CAAC,IAAiB;IACxC,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;AACrC,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAC9B,eAA+B;IAE/B,OAAQ,eAAuB,CAAC,OAAO,CAAC;AAC5C,CAAC;AAJD,gDAIC;AAED,kEAAkE;AAClE,SAAgB,0BAA0B;IACtC,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,2BAA2B,EAAE,CAAC;IAEtD,OAAO,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACpD,CAAC;AAND,gEAMC;AAED,SAAS,2BAA2B;IAChC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB;IACxB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"parse5.js","sourceRoot":"","sources":["../../../src/shared/parse5.ts"],"names":[],"mappings":";;;AAQA,SAAgB,aAAa,CAAC,IAAiB;IAC3C,OAAO,SAAS,IAAI,IAAI,CAAC;AAC7B,CAAC;AAFD,sCAEC;AAED,SAAgB,aAAa,CAAC,IAAiB;IAC3C,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;AACxC,CAAC;AAFD,sCAEC;AAED,SAAgB,UAAU,CAAC,IAAiB;IACxC,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;AACrC,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAC9B,eAA+B;IAE/B,OAAQ,eAAuB,CAAC,OAAO,CAAC;AAC5C,CAAC;AAJD,gDAIC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IRAttributeType = exports.LWCDirectiveRenderMode = exports.LWCDirectiveDomMode = void 0;
3
+ exports.LWCDirectiveRenderMode = exports.LWCDirectiveDomMode = void 0;
4
4
  var LWCDirectiveDomMode;
5
5
  (function (LWCDirectiveDomMode) {
6
6
  LWCDirectiveDomMode["manual"] = "manual";
@@ -10,10 +10,4 @@ var LWCDirectiveRenderMode;
10
10
  LWCDirectiveRenderMode["shadow"] = "shadow";
11
11
  LWCDirectiveRenderMode["light"] = "light";
12
12
  })(LWCDirectiveRenderMode = exports.LWCDirectiveRenderMode || (exports.LWCDirectiveRenderMode = {}));
13
- var IRAttributeType;
14
- (function (IRAttributeType) {
15
- IRAttributeType[IRAttributeType["Expression"] = 0] = "Expression";
16
- IRAttributeType[IRAttributeType["String"] = 1] = "String";
17
- IRAttributeType[IRAttributeType["Boolean"] = 2] = "Boolean";
18
- })(IRAttributeType = exports.IRAttributeType || (exports.IRAttributeType = {}));
19
13
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":";;;AA0CA,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;AA2DD,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,iEAAU,CAAA;IACV,yDAAM,CAAA;IACN,2DAAO,CAAA;AACX,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":";;;AAkBA,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,9 +1,9 @@
1
1
  import { ResolvedConfig } from '../config';
2
2
  import * as t from '../shared/estree';
3
- import { IRElement, LWCDirectiveRenderMode } from '../shared/types';
3
+ import { Expression, Literal, LWCDirectiveRenderMode, Root } from '../shared/types';
4
4
  export default class CodeGen {
5
5
  /** The AST root. */
6
- readonly root: IRElement;
6
+ readonly root: Root;
7
7
  /** The template render mode. */
8
8
  readonly renderMode: LWCDirectiveRenderMode;
9
9
  /** Indicates whether the generated code should preserve HTML comments or not. */
@@ -16,6 +16,14 @@ export default class CodeGen {
16
16
  * fashion.
17
17
  */
18
18
  readonly scopeFragmentId: boolean;
19
+ /**
20
+ * The scope keeps track of the identifiers that have been seen while traversing the AST.
21
+ * Currently, we are keeping track of item, index and iterator on the ForEach and ForOf nodes respectively.
22
+ *
23
+ * Scope is used in bindExpression to determine if the expression is a known identifier.
24
+ * A known identifier exists if it exists in the scope chain.
25
+ */
26
+ private scope;
19
27
  currentId: number;
20
28
  currentKey: number;
21
29
  innerHtmlInstances: number;
@@ -27,7 +35,7 @@ export default class CodeGen {
27
35
  memorizedIds: t.Identifier[];
28
36
  referencedComponents: Set<string>;
29
37
  constructor({ root, config, scopeFragmentId, }: {
30
- root: IRElement;
38
+ root: Root;
31
39
  config: ResolvedConfig;
32
40
  scopeFragmentId: boolean;
33
41
  });
@@ -58,4 +66,18 @@ export default class CodeGen {
58
66
  */
59
67
  genSanitizedHtmlExpr(expr: t.Expression): import("estree").LogicalExpression | import("estree").ConditionalExpression;
60
68
  private _renderApiCall;
69
+ beginScope(): void;
70
+ private createScope;
71
+ endScope(): void;
72
+ declareIdentifier(identifier: t.Identifier): void;
73
+ /**
74
+ * Searches the scopes to find an identifier with a matching name.
75
+ */
76
+ isLocalIdentifier(identifier: t.Identifier): boolean;
77
+ /**
78
+ * Bind the passed expression to the component instance. It applies the following transformation to the expression:
79
+ * - {value} --> {$cmp.value}
80
+ * - {value[index]} --> {$cmp.value[$cmp.index]}
81
+ */
82
+ bindExpression(expression: Expression | Literal): t.Expression;
61
83
  }
@@ -1,16 +1,22 @@
1
1
  import * as t from '../shared/estree';
2
- import { IRElement, IRNode } from '../shared/types';
2
+ import { ChildNode, Node } from '../shared/types';
3
3
  import CodeGen from './codegen';
4
4
  export declare function identifierFromComponentName(name: string): t.Identifier;
5
5
  export declare function getMemberExpressionRoot(expression: t.MemberExpression): t.Identifier;
6
6
  export declare function objectToAST(obj: object, valueMapper: (key: string) => t.Expression): t.ObjectExpression;
7
- export declare function containsDynamicChildren(children: IRNode[]): boolean;
8
- export declare function shouldFlatten(children: IRNode[], codeGen: CodeGen): boolean;
7
+ export declare function containsDynamicChildren(children: ChildNode[]): boolean;
8
+ /**
9
+ * Returns true if the children should be flattened.
10
+ *
11
+ * Children should be flattened if they contain an iterator,
12
+ * a dynamic directive or a slot inside a light dom element.
13
+ */
14
+ export declare function shouldFlatten(codeGen: CodeGen, children: ChildNode[]): boolean;
9
15
  /**
10
16
  * Returns true if the AST element or any of its descendants use an id attribute.
11
17
  */
12
- export declare function hasIdAttribute(element: IRElement): boolean;
13
- export declare function memorizeHandler(codeGen: CodeGen, element: IRElement, parentStack: IRNode[], componentHandler: t.Expression, handler: t.Expression): t.Expression;
18
+ export declare function hasIdAttribute(node: Node): boolean;
19
+ export declare function memorizeHandler(codeGen: CodeGen, componentHandler: t.Expression, handler: t.Expression): t.Expression;
14
20
  export declare function generateTemplateMetadata(codeGen: CodeGen): t.Statement[];
15
21
  export declare function parseStyleText(cssText: string): {
16
22
  [name: string]: string;
@@ -1,3 +1,3 @@
1
1
  import { ResolvedConfig } from '../config';
2
- import { IRElement } from '../shared/types';
3
- export default function (root: IRElement, config: ResolvedConfig): string;
2
+ import { Root } from '../shared/types';
3
+ export default function (root: Root, config: ResolvedConfig): string;
@@ -0,0 +1,33 @@
1
+ import * as t from '../shared/estree';
2
+ /**
3
+ * Given a template function, extract all static objects/arrays (e.g. `{ key : 1 }`)
4
+ * and return them as a list of `const` declarations. Also return the modified function
5
+ * that is now referencing those declarations.
6
+ *
7
+ * Example input:
8
+ *
9
+ * ```
10
+ * function tmpl() {
11
+ * return {
12
+ * foo: dynamic(),
13
+ * bar: { static: true },
14
+ * baz: { really: { static: ['yep', 'totally', 'static' ] } }
15
+ * };
16
+ * }
17
+ * ```
18
+ *
19
+ * Example output:
20
+ *
21
+ * ```
22
+ * const stc0 = { static: true };
23
+ * const stc1 = { really: { static: ['yep', 'totally', 'static' ] } };
24
+ * function tmpl() {
25
+ * return {
26
+ * foo: dynamic(),
27
+ * bar: stc0,
28
+ * baz: stc1
29
+ * };
30
+ * }
31
+ * ```
32
+ */
33
+ export declare function optimizeStaticExpressions(templateFn: t.FunctionDeclaration): Array<t.FunctionDeclaration | t.VariableDeclaration>;
@@ -1,7 +1,6 @@
1
1
  import { Config } from './config';
2
2
  import { TemplateCompileResult, TemplateParseResult } from './shared/types';
3
- export { IRAttributeType, IRElement, IRNode, TemplateExpression, TemplateIdentifier, } from './shared/types';
4
- export { isElement } from './shared/ir';
3
+ export * from './shared/types';
5
4
  export { Config } from './config';
6
5
  export declare function parse(source: string, config?: Config): TemplateParseResult;
7
6
  export default function compile(source: string, config: Config): TemplateCompileResult;
@@ -1,11 +1,11 @@
1
1
  import * as parse5 from 'parse5';
2
- import { IRAttribute, IRElement } from '../shared/types';
2
+ import { Attribute, BaseElement, SourceLocation } from '../shared/types';
3
3
  import ParserCtx from './parser';
4
4
  export declare function isIdReferencingAttribute(attrName: string): boolean;
5
5
  export declare function isAllowedFragOnlyUrlsXHTML(tagName: string, attrName: string, namespaceURI: string): boolean;
6
6
  export declare function isSvgUseHref(tagName: string, attrName: string, namespaceURI: string): boolean;
7
7
  export declare function isFragmentOnlyUrl(url: string): boolean;
8
- export declare function normalizeAttributeValue(ctx: ParserCtx, raw: string, tag: string, attr: parse5.Attribute, location: parse5.Location): {
8
+ export declare function normalizeAttributeValue(ctx: ParserCtx, raw: string, tag: string, attr: parse5.Attribute, location: SourceLocation): {
9
9
  value: string;
10
10
  escapedExpression: boolean;
11
11
  };
@@ -14,7 +14,7 @@ export declare function isProhibitedIsAttribute(attrName: string): boolean;
14
14
  export declare function isTabIndexAttribute(attrName: string): boolean;
15
15
  export declare function isValidTabIndexAttributeValue(value: any): boolean;
16
16
  export declare function isAriaOrDataOrFmkAttribute(attrName: string): boolean;
17
- export declare function isAttribute(element: IRElement, attrName: string): boolean;
17
+ export declare function isAttribute(element: BaseElement, attrName: string): boolean;
18
18
  export declare function isValidHTMLAttribute(tagName: string, attrName: string): boolean;
19
19
  /**
20
20
  * Convert attribute name from kebab case to camel case property name
@@ -22,9 +22,9 @@ export declare function isValidHTMLAttribute(tagName: string, attrName: string):
22
22
  export declare function attributeToPropertyName(attrName: string): string;
23
23
  export declare class ParsedAttribute {
24
24
  private readonly attributes;
25
- append(attr: IRAttribute): void;
26
- get(pattern: string | RegExp): IRAttribute | undefined;
27
- pick(pattern: string | RegExp): IRAttribute | undefined;
25
+ append(attr: Attribute): void;
26
+ get(pattern: string | RegExp): Attribute | undefined;
27
+ pick(pattern: string | RegExp): Attribute | undefined;
28
28
  private getKey;
29
- getAttributes(): IRAttribute[];
29
+ getAttributes(): Attribute[];
30
30
  }
@@ -11,16 +11,10 @@ export declare const LWC_DIRECTIVES: {
11
11
  INNER_HTML: string;
12
12
  };
13
13
  export declare const LWC_DIRECTIVE_SET: Set<string>;
14
- export declare const FOR_DIRECTIVES: {
15
- FOR_EACH: string;
16
- FOR_ITEM: string;
17
- FOR_INDEX: string;
18
- };
19
14
  export declare const ROOT_TEMPLATE_DIRECTIVES: {
20
15
  PRESERVE_COMMENTS: string;
21
16
  RENDER_MODE: string;
22
17
  };
23
- export declare const ROOT_TEMPLATE_DIRECTIVES_SET: Set<string>;
24
18
  export declare const ID_REFERENCING_ATTRIBUTES_SET: Set<string>;
25
19
  export declare const DATA_RE: RegExp;
26
20
  export declare const SUPPORTED_SVG_TAGS: Set<string>;
@@ -44,7 +38,4 @@ export declare const ATTR_NAME: {
44
38
  HREF: string;
45
39
  XLINK_HREF: string;
46
40
  };
47
- export declare const HTML_NAMESPACE_URI = "http://www.w3.org/1999/xhtml";
48
- export declare const SVG_NAMESPACE_URI = "http://www.w3.org/2000/svg";
49
- export declare const MATHML_NAMESPACE_URI = "http://www.w3.org/1998/Math/MathML";
50
41
  export declare const TEMPLATE_DIRECTIVES: RegExp[];
@@ -1,9 +1,8 @@
1
- import { Location } from 'parse5';
2
- import { TemplateExpression, TemplateIdentifier } from '../shared/types';
3
1
  import ParserCtx from './parser';
2
+ import { Expression, Identifier, SourceLocation } from '../shared/types';
4
3
  export declare const EXPRESSION_SYMBOL_START = "{";
5
4
  export declare const EXPRESSION_SYMBOL_END = "}";
6
5
  export declare function isExpression(source: string): boolean;
7
6
  export declare function isPotentialExpression(source: string): boolean;
8
- export declare function parseExpression(ctx: ParserCtx, source: string, location: Location): TemplateExpression;
9
- export declare function parseIdentifier(ctx: ParserCtx, source: string, location: Location): TemplateIdentifier;
7
+ export declare function parseExpression(ctx: ParserCtx, source: string, location: SourceLocation): Expression;
8
+ export declare function parseIdentifier(ctx: ParserCtx, source: string, location: SourceLocation): Identifier;
@@ -0,0 +1,2 @@
1
+ export declare const errorCodesToErrorOn: Set<string>;
2
+ export declare const errorCodesToWarnOn: Set<string>;