@lwc/template-compiler 2.7.2 → 2.7.3

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 (45) hide show
  1. package/dist/commonjs/codegen/codegen.js +73 -3
  2. package/dist/commonjs/codegen/codegen.js.map +1 -1
  3. package/dist/commonjs/codegen/helpers.js +34 -20
  4. package/dist/commonjs/codegen/helpers.js.map +1 -1
  5. package/dist/commonjs/codegen/index.js +183 -192
  6. package/dist/commonjs/codegen/index.js.map +1 -1
  7. package/dist/commonjs/index.js +12 -5
  8. package/dist/commonjs/index.js.map +1 -1
  9. package/dist/commonjs/parser/attribute.js +3 -3
  10. package/dist/commonjs/parser/attribute.js.map +1 -1
  11. package/dist/commonjs/parser/constants.js +1 -7
  12. package/dist/commonjs/parser/constants.js.map +1 -1
  13. package/dist/commonjs/parser/expression.js +5 -2
  14. package/dist/commonjs/parser/expression.js.map +1 -1
  15. package/dist/commonjs/parser/html.js +2 -1
  16. package/dist/commonjs/parser/html.js.map +1 -1
  17. package/dist/commonjs/parser/index.js +365 -337
  18. package/dist/commonjs/parser/index.js.map +1 -1
  19. package/dist/commonjs/parser/parser.js +85 -30
  20. package/dist/commonjs/parser/parser.js.map +1 -1
  21. package/dist/commonjs/shared/ast.js +303 -0
  22. package/dist/commonjs/shared/ast.js.map +1 -0
  23. package/dist/commonjs/shared/parse5.js +1 -15
  24. package/dist/commonjs/shared/parse5.js.map +1 -1
  25. package/dist/commonjs/shared/types.js +1 -7
  26. package/dist/commonjs/shared/types.js.map +1 -1
  27. package/dist/types/codegen/codegen.d.ts +25 -3
  28. package/dist/types/codegen/helpers.d.ts +11 -5
  29. package/dist/types/codegen/index.d.ts +2 -2
  30. package/dist/types/index.d.ts +1 -2
  31. package/dist/types/parser/attribute.d.ts +7 -7
  32. package/dist/types/parser/constants.d.ts +0 -6
  33. package/dist/types/parser/expression.d.ts +3 -4
  34. package/dist/types/parser/parser.d.ts +57 -28
  35. package/dist/types/shared/ast.d.ts +45 -0
  36. package/dist/types/shared/estree.d.ts +0 -2
  37. package/dist/types/shared/parse5.d.ts +0 -1
  38. package/dist/types/shared/types.d.ts +129 -86
  39. package/package.json +4 -4
  40. package/dist/commonjs/codegen/scope.js +0 -61
  41. package/dist/commonjs/codegen/scope.js.map +0 -1
  42. package/dist/commonjs/shared/ir.js +0 -90
  43. package/dist/commonjs/shared/ir.js.map +0 -1
  44. package/dist/types/codegen/scope.d.ts +0 -8
  45. package/dist/types/shared/ir.d.ts +0 -15
@@ -31,11 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
31
31
  const astring = __importStar(require("astring"));
32
32
  const shared_1 = require("@lwc/shared");
33
33
  const errors_1 = require("@lwc/errors");
34
- const ir_1 = require("../shared/ir");
34
+ const ast_1 = require("../shared/ast");
35
35
  const constants_1 = require("../shared/constants");
36
- const types_1 = require("../shared/types");
37
36
  const codegen_1 = __importDefault(require("./codegen"));
38
- const scope_1 = require("./scope");
39
37
  const helpers_1 = require("./helpers");
40
38
  const module_1 = require("./formatters/module");
41
39
  const function_1 = require("./formatters/function");
@@ -43,54 +41,32 @@ const t = __importStar(require("../shared/estree"));
43
41
  const attribute_1 = require("../parser/attribute");
44
42
  const constants_2 = require("../parser/constants");
45
43
  function transform(codeGen) {
46
- const parentStack = [];
47
44
  function transformElement(element) {
48
45
  const databag = elementDataBag(element);
49
46
  let res;
50
47
  const children = transformChildren(element);
51
48
  // Check wether it has the special directive lwc:dynamic
52
- if (element.lwc && element.lwc.dynamic) {
53
- const expression = (0, scope_1.bindExpression)(element.lwc.dynamic, element, parentStack);
54
- res = codeGen.genDynamicElement(element.tag, expression, databag, children);
49
+ const { name } = element;
50
+ const dynamic = element.directives.find(ast_1.isDynamicDirective);
51
+ if (dynamic) {
52
+ const expression = codeGen.bindExpression(dynamic.value);
53
+ res = codeGen.genDynamicElement(name, expression, databag, children);
55
54
  }
56
- else if ((0, ir_1.isCustomElement)(element)) {
57
- // Make sure to register the component
58
- const componentClassName = element.component;
59
- res = codeGen.genCustomElement(element.tag, (0, helpers_1.identifierFromComponentName)(componentClassName), databag, children);
55
+ else if ((0, ast_1.isComponent)(element)) {
56
+ res = codeGen.genCustomElement(name, (0, helpers_1.identifierFromComponentName)(name), databag, children);
60
57
  }
61
- else if ((0, ir_1.isSlot)(element)) {
58
+ else if ((0, ast_1.isSlot)(element)) {
62
59
  const defaultSlot = children;
63
60
  res = codeGen.getSlot(element.slotName, databag, defaultSlot);
64
61
  }
65
62
  else {
66
- res = codeGen.genElement(element.tag, databag, children);
63
+ res = codeGen.genElement(name, databag, children);
67
64
  }
68
- res = applyInlineIf(element, res);
69
- res = applyInlineFor(element, res);
70
65
  return res;
71
66
  }
72
- function transformTemplate(element) {
73
- const children = transformChildren(element);
74
- let res = applyTemplateIf(element, children);
75
- if (element.forEach) {
76
- res = applyTemplateFor(element, res);
77
- }
78
- else if (element.forOf) {
79
- res = applyTemplateForOf(element, res);
80
- }
81
- if (t.isArrayExpression(res) && element.if) {
82
- // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely
83
- // typecast it to t.Expression[]
84
- return res.elements;
85
- }
86
- else {
87
- return res;
88
- }
89
- }
90
67
  function transformText(consecutiveText) {
91
- return codeGen.genText(consecutiveText.map((text) => {
92
- const { value } = text;
93
- return typeof value === 'string' ? value : (0, scope_1.bindExpression)(value, text, parentStack);
68
+ return codeGen.genText(consecutiveText.map(({ value }) => {
69
+ return (0, ast_1.isStringLiteral)(value) ? value.value : codeGen.bindExpression(value);
94
70
  }));
95
71
  }
96
72
  function transformComment(comment) {
@@ -101,40 +77,37 @@ function transform(codeGen) {
101
77
  const children = parent.children;
102
78
  const childrenIterator = children[Symbol.iterator]();
103
79
  let current;
104
- parentStack.push(parent);
105
80
  while ((current = childrenIterator.next()) && !current.done) {
106
81
  let child = current.value;
107
- if ((0, ir_1.isTextNode)(child)) {
82
+ if ((0, ast_1.isText)(child)) {
108
83
  const continuousText = [];
109
84
  // Consume all the contiguous text nodes.
110
85
  do {
111
86
  continuousText.push(child);
112
87
  current = childrenIterator.next();
113
88
  child = current.value;
114
- } while (!current.done && (0, ir_1.isTextNode)(child));
89
+ } while (!current.done && (0, ast_1.isText)(child));
115
90
  res.push(transformText(continuousText));
116
91
  // Early exit if a text node is the last child node.
117
92
  if (current.done) {
118
93
  break;
119
94
  }
120
95
  }
121
- if ((0, ir_1.isElement)(child)) {
122
- if ((0, ir_1.isTemplate)(child)) {
123
- const templateChildren = transformTemplate(child);
124
- Array.isArray(templateChildren)
125
- ? res.push(...templateChildren)
126
- : res.push(templateChildren);
127
- }
128
- else {
129
- res.push(transformElement(child));
130
- }
96
+ if ((0, ast_1.isForBlock)(child)) {
97
+ res.push(transformForBlock(child));
98
+ }
99
+ else if ((0, ast_1.isIf)(child)) {
100
+ const children = transformIf(child);
101
+ Array.isArray(children) ? res.push(...children) : res.push(children);
131
102
  }
132
- if ((0, ir_1.isCommentNode)(child) && codeGen.preserveComments) {
103
+ else if ((0, ast_1.isBaseElement)(child)) {
104
+ res.push(transformElement(child));
105
+ }
106
+ else if ((0, ast_1.isComment)(child) && codeGen.preserveComments) {
133
107
  res.push(transformComment(child));
134
108
  }
135
109
  }
136
- parentStack.pop();
137
- if ((0, helpers_1.shouldFlatten)(children, codeGen)) {
110
+ if ((0, helpers_1.shouldFlatten)(codeGen, children)) {
138
111
  if (children.length === 1 && !(0, helpers_1.containsDynamicChildren)(children)) {
139
112
  return res[0];
140
113
  }
@@ -146,15 +119,33 @@ function transform(codeGen) {
146
119
  return t.arrayExpression(res);
147
120
  }
148
121
  }
149
- function applyInlineIf(element, node, testExpression, falseValue) {
150
- if (!element.if) {
151
- return node;
122
+ function transformIf(ifNode) {
123
+ const expression = transformChildren(ifNode);
124
+ let res;
125
+ if (t.isArrayExpression(expression)) {
126
+ // Bind the expression once for all the template children
127
+ const testExpression = codeGen.bindExpression(ifNode.condition);
128
+ res = t.arrayExpression(expression.elements.map((element) => element !== null
129
+ ? applyInlineIf(ifNode, element, testExpression)
130
+ : null));
131
+ }
132
+ else {
133
+ // If the template has a single children, make sure the ternary expression returns an array
134
+ res = applyInlineIf(ifNode, expression, undefined, t.arrayExpression([]));
152
135
  }
136
+ if (t.isArrayExpression(res)) {
137
+ // The `if` transformation does not use the SpreadElement, neither null, therefore we can safely
138
+ // typecast it to t.Expression[]
139
+ res = res.elements;
140
+ }
141
+ return res;
142
+ }
143
+ function applyInlineIf(ifNode, node, testExpression, falseValue) {
153
144
  if (!testExpression) {
154
- testExpression = (0, scope_1.bindExpression)(element.if, element, parentStack);
145
+ testExpression = codeGen.bindExpression(ifNode.condition);
155
146
  }
156
147
  let leftExpression;
157
- const modifier = element.ifModifier;
148
+ const modifier = ifNode.modifier;
158
149
  if (modifier === 'true') {
159
150
  leftExpression = testExpression;
160
151
  }
@@ -172,24 +163,48 @@ function transform(codeGen) {
172
163
  }
173
164
  return t.conditionalExpression(leftExpression, node, falseValue !== null && falseValue !== void 0 ? falseValue : t.literal(null));
174
165
  }
175
- function applyInlineFor(element, node) {
176
- if (!element.forEach) {
177
- return node;
166
+ function transformForBlock(forBlock) {
167
+ let expression = transformForChildren(forBlock);
168
+ if (t.isArrayExpression(expression) && expression.elements.length === 1) {
169
+ expression = expression.elements[0];
178
170
  }
179
- const { expression, item, index } = element.forEach;
171
+ let res;
172
+ if ((0, ast_1.isForEach)(forBlock)) {
173
+ res = applyInlineFor(forBlock, expression);
174
+ }
175
+ else {
176
+ res = applyInlineForOf(forBlock, expression);
177
+ }
178
+ return res;
179
+ }
180
+ function transformForChildren(forBlock) {
181
+ codeGen.beginScope();
182
+ if ((0, ast_1.isForEach)(forBlock)) {
183
+ const { item, index } = forBlock;
184
+ if (index) {
185
+ codeGen.declareIdentifier(index);
186
+ }
187
+ codeGen.declareIdentifier(item);
188
+ }
189
+ else {
190
+ codeGen.declareIdentifier(forBlock.iterator);
191
+ }
192
+ const children = transformChildren(forBlock);
193
+ codeGen.endScope();
194
+ return children;
195
+ }
196
+ function applyInlineFor(forEach, node) {
197
+ const { expression, item, index } = forEach;
180
198
  const params = [item];
181
199
  if (index) {
182
200
  params.push(index);
183
201
  }
184
- const iterable = (0, scope_1.bindExpression)(expression, element, parentStack);
202
+ const iterable = codeGen.bindExpression(expression);
185
203
  const iterationFunction = t.functionExpression(null, params, t.blockStatement([t.returnStatement(node)]));
186
204
  return codeGen.genIterator(iterable, iterationFunction);
187
205
  }
188
- function applyInlineForOf(element, node) {
189
- if (!element.forOf) {
190
- return node;
191
- }
192
- const { expression, iterator } = element.forOf;
206
+ function applyInlineForOf(forOf, node) {
207
+ const { expression, iterator } = forOf;
193
208
  const { name: iteratorName } = iterator;
194
209
  const argsMapping = {
195
210
  value: `${iteratorName}Value`,
@@ -198,136 +213,111 @@ function transform(codeGen) {
198
213
  last: `${iteratorName}Last`,
199
214
  };
200
215
  const iteratorArgs = Object.values(argsMapping).map((arg) => t.identifier(arg));
201
- const iteratorObjet = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));
202
- const iterable = (0, scope_1.bindExpression)(expression, element, parentStack);
216
+ const iteratorObject = t.objectExpression(Object.entries(argsMapping).map(([prop, arg]) => t.property(t.identifier(prop), t.identifier(arg))));
217
+ const iterable = codeGen.bindExpression(expression);
203
218
  const iterationFunction = t.functionExpression(null, iteratorArgs, t.blockStatement([
204
219
  t.variableDeclaration('const', [
205
- t.variableDeclarator(t.identifier(iteratorName), iteratorObjet),
220
+ t.variableDeclarator(t.identifier(iteratorName), iteratorObject),
206
221
  ]),
207
222
  t.returnStatement(node),
208
223
  ]));
209
224
  return codeGen.genIterator(iterable, iterationFunction);
210
225
  }
211
- function applyTemplateForOf(element, fragmentNodes) {
212
- let expression = fragmentNodes;
213
- if (t.isArrayExpression(expression) && expression.elements.length === 1) {
214
- expression = expression.elements[0];
215
- }
216
- return applyInlineForOf(element, expression);
217
- }
218
- function applyTemplateFor(element, fragmentNodes) {
219
- let expression = fragmentNodes;
220
- if (t.isArrayExpression(expression) && expression.elements.length === 1) {
221
- expression = expression.elements[0];
222
- }
223
- return applyInlineFor(element, expression);
224
- }
225
- function applyTemplateIf(element, fragmentNodes) {
226
- if (!element.if) {
227
- return fragmentNodes;
228
- }
229
- if (t.isArrayExpression(fragmentNodes)) {
230
- // Bind the expression once for all the template children
231
- const testExpression = (0, scope_1.bindExpression)(element.if, element, parentStack);
232
- return t.arrayExpression(fragmentNodes.elements.map((child) => child !== null
233
- ? applyInlineIf(element, child, testExpression)
234
- : null));
235
- }
236
- else {
237
- // If the template has a single children, make sure the ternary expression returns an array
238
- return applyInlineIf(element, fragmentNodes, undefined, t.arrayExpression([]));
239
- }
240
- }
241
226
  function computeAttrValue(attr, element) {
242
- const { tag, namespace } = element;
243
- const isUsedAsAttribute = (0, attribute_1.isAttribute)(element, attr.name);
244
- switch (attr.type) {
245
- case types_1.IRAttributeType.Expression: {
246
- const expression = (0, scope_1.bindExpression)(attr.value, element, parentStack);
247
- // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props
248
- if (isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attr.name, tag)) {
249
- // We need to do some manipulation to allow the diffing algorithm add/remove the attribute
250
- // without handling special cases at runtime.
251
- return codeGen.genBooleanAttributeExpr(expression);
252
- }
253
- if (attr.name === 'tabindex') {
254
- return codeGen.genTabIndex([expression]);
255
- }
256
- if (attr.name === 'id' || (0, attribute_1.isIdReferencingAttribute)(attr.name)) {
257
- return codeGen.genScopedId(expression);
258
- }
259
- if (codeGen.scopeFragmentId &&
260
- (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(tag, attr.name, namespace)) {
261
- return codeGen.genScopedFragId(expression);
262
- }
263
- if ((0, attribute_1.isSvgUseHref)(tag, attr.name, namespace)) {
264
- codeGen.usedLwcApis.add('sanitizeAttribute');
265
- return t.callExpression(t.identifier('sanitizeAttribute'), [
266
- t.literal(tag),
267
- t.literal(namespace),
268
- t.literal(attr.name),
269
- codeGen.genScopedFragId(expression),
270
- ]);
271
- }
272
- return expression;
227
+ const { name: elmName, namespace = '' } = element;
228
+ const { value: attrValue } = attr;
229
+ // Evaluate properties based on their attribute name
230
+ const attrName = (0, ast_1.isProperty)(attr) ? attr.attributeName : attr.name;
231
+ const isUsedAsAttribute = (0, attribute_1.isAttribute)(element, attrName);
232
+ if ((0, ast_1.isExpression)(attrValue)) {
233
+ const expression = codeGen.bindExpression(attrValue);
234
+ // TODO [#2012]: Normalize global boolean attrs values passed to custom elements as props
235
+ if (isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attrName, elmName)) {
236
+ // We need to do some manipulation to allow the diffing algorithm add/remove the attribute
237
+ // without handling special cases at runtime.
238
+ return codeGen.genBooleanAttributeExpr(expression);
273
239
  }
274
- case types_1.IRAttributeType.String: {
275
- if (attr.name === 'id') {
276
- return codeGen.genScopedId(attr.value);
277
- }
278
- if (attr.name === 'spellcheck') {
279
- return t.literal(attr.value.toLowerCase() !== 'false');
280
- }
281
- if (!isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attr.name, tag)) {
282
- // We are in presence of a string value, for a recognized boolean attribute, which is used as
283
- // property. for these cases, always set the property to true.
284
- return t.literal(true);
285
- }
286
- if ((0, attribute_1.isIdReferencingAttribute)(attr.name)) {
287
- return codeGen.genScopedId(attr.value);
288
- }
289
- if (codeGen.scopeFragmentId &&
290
- (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(tag, attr.name, namespace) &&
291
- (0, attribute_1.isFragmentOnlyUrl)(attr.value)) {
292
- return codeGen.genScopedFragId(attr.value);
293
- }
294
- if ((0, attribute_1.isSvgUseHref)(tag, attr.name, namespace)) {
295
- codeGen.usedLwcApis.add('sanitizeAttribute');
296
- return t.callExpression(t.identifier('sanitizeAttribute'), [
297
- t.literal(tag),
298
- t.literal(namespace),
299
- t.literal(attr.name),
300
- (0, attribute_1.isFragmentOnlyUrl)(attr.value)
301
- ? codeGen.genScopedFragId(attr.value)
302
- : t.literal(attr.value),
303
- ]);
304
- }
305
- return t.literal(attr.value);
240
+ if (attrName === 'tabindex') {
241
+ return codeGen.genTabIndex([expression]);
242
+ }
243
+ if (attrName === 'id' || (0, attribute_1.isIdReferencingAttribute)(attrName)) {
244
+ return codeGen.genScopedId(expression);
306
245
  }
307
- case types_1.IRAttributeType.Boolean: {
308
- // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),
309
- // regardless if is a boolean attribute or not.
310
- return isUsedAsAttribute ? t.literal('') : t.literal(attr.value);
246
+ if (codeGen.scopeFragmentId &&
247
+ (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(elmName, attrName, namespace)) {
248
+ return codeGen.genScopedFragId(expression);
311
249
  }
250
+ if ((0, attribute_1.isSvgUseHref)(elmName, attrName, namespace)) {
251
+ codeGen.usedLwcApis.add('sanitizeAttribute');
252
+ return t.callExpression(t.identifier('sanitizeAttribute'), [
253
+ t.literal(elmName),
254
+ t.literal(namespace),
255
+ t.literal(attrName),
256
+ codeGen.genScopedFragId(expression),
257
+ ]);
258
+ }
259
+ return expression;
260
+ }
261
+ else if ((0, ast_1.isStringLiteral)(attrValue)) {
262
+ if (attrName === 'id') {
263
+ return codeGen.genScopedId(attrValue.value);
264
+ }
265
+ if (attrName === 'spellcheck') {
266
+ return t.literal(attrValue.value.toLowerCase() !== 'false');
267
+ }
268
+ if (!isUsedAsAttribute && (0, shared_1.isBooleanAttribute)(attrName, elmName)) {
269
+ // We are in presence of a string value, for a recognized boolean attribute, which is used as
270
+ // property. for these cases, always set the property to true.
271
+ return t.literal(true);
272
+ }
273
+ if ((0, attribute_1.isIdReferencingAttribute)(attrName)) {
274
+ return codeGen.genScopedId(attrValue.value);
275
+ }
276
+ if (codeGen.scopeFragmentId &&
277
+ (0, attribute_1.isAllowedFragOnlyUrlsXHTML)(elmName, attrName, namespace) &&
278
+ (0, attribute_1.isFragmentOnlyUrl)(attrValue.value)) {
279
+ return codeGen.genScopedFragId(attrValue.value);
280
+ }
281
+ if ((0, attribute_1.isSvgUseHref)(elmName, attrName, namespace)) {
282
+ codeGen.usedLwcApis.add('sanitizeAttribute');
283
+ return t.callExpression(t.identifier('sanitizeAttribute'), [
284
+ t.literal(elmName),
285
+ t.literal(namespace),
286
+ t.literal(attrName),
287
+ (0, attribute_1.isFragmentOnlyUrl)(attrValue.value)
288
+ ? codeGen.genScopedFragId(attrValue.value)
289
+ : t.literal(attrValue.value),
290
+ ]);
291
+ }
292
+ return t.literal(attrValue.value);
293
+ }
294
+ else {
295
+ // A boolean value used in an attribute should always generate .setAttribute(attr.name, ''),
296
+ // regardless if is a boolean attribute or not.
297
+ return isUsedAsAttribute ? t.literal('') : t.literal(attrValue.value);
312
298
  }
313
299
  }
314
300
  function elementDataBag(element) {
315
301
  const data = [];
316
- const { attrs, props, on, forKey, lwc } = element;
302
+ const { attributes, properties, listeners } = element;
303
+ const innerHTML = element.directives.find(ast_1.isInnerHTMLDirective);
304
+ const forKey = element.directives.find(ast_1.isKeyDirective);
305
+ const dom = element.directives.find(ast_1.isDomDirective);
317
306
  // Attributes
318
- if (attrs) {
307
+ if (attributes.length) {
319
308
  const rest = {};
320
- for (const [name, value] of Object.entries(attrs)) {
309
+ for (const attr of attributes) {
310
+ const { name, value } = attr;
321
311
  if (name === 'class') {
322
312
  // Handle class attribute:
323
313
  // - expression values are turned into a `className` property.
324
314
  // - string values are parsed and turned into a `classMap` object associating
325
315
  // each individual class name with a `true` boolean.
326
- if (value.type === types_1.IRAttributeType.Expression) {
327
- const classExpression = (0, scope_1.bindExpression)(value.value, element, parentStack);
316
+ if ((0, ast_1.isExpression)(value)) {
317
+ const classExpression = codeGen.bindExpression(value);
328
318
  data.push(t.property(t.identifier('className'), classExpression));
329
319
  }
330
- else if (value.type === types_1.IRAttributeType.String) {
320
+ else if ((0, ast_1.isStringLiteral)(value)) {
331
321
  const classNames = (0, helpers_1.parseClassNames)(value.value);
332
322
  const classMap = t.objectExpression(classNames.map((name) => t.property(t.literal(name), t.literal(true))));
333
323
  data.push(t.property(t.identifier('classMap'), classMap));
@@ -338,18 +328,18 @@ function transform(codeGen) {
338
328
  // - expression values are turned into a `style` property.
339
329
  // - string values are parsed and turned into a `styles` array
340
330
  // containing triples of [name, value, important (optional)]
341
- if (value.type === types_1.IRAttributeType.Expression) {
342
- const styleExpression = (0, scope_1.bindExpression)(value.value, element, parentStack);
331
+ if ((0, ast_1.isExpression)(value)) {
332
+ const styleExpression = codeGen.bindExpression(value);
343
333
  data.push(t.property(t.identifier('style'), styleExpression));
344
334
  }
345
- else if (value.type === types_1.IRAttributeType.String) {
335
+ else if ((0, ast_1.isStringLiteral)(value)) {
346
336
  const styleMap = (0, helpers_1.parseStyleText)(value.value);
347
337
  const styleAST = (0, helpers_1.styleMapToStyleDeclsAST)(styleMap);
348
338
  data.push(t.property(t.identifier('styleDecls'), styleAST));
349
339
  }
350
340
  }
351
341
  else {
352
- rest[name] = computeAttrValue(attrs[name], element);
342
+ rest[name] = computeAttrValue(attr, element);
353
343
  }
354
344
  }
355
345
  // Add all the remaining attributes to an `attrs` object where the key is the attribute
@@ -361,24 +351,24 @@ function transform(codeGen) {
361
351
  }
362
352
  // Properties
363
353
  const propsObj = t.objectExpression([]);
364
- // Properties: standard props
365
- if (props) {
366
- for (const [key, value] of Object.entries(props)) {
367
- propsObj.properties.push(t.property(t.literal(key), computeAttrValue(value, element)));
354
+ // Properties
355
+ if (properties.length) {
356
+ for (const prop of properties) {
357
+ propsObj.properties.push(t.property(t.literal(prop.name), computeAttrValue(prop, element)));
368
358
  }
369
359
  }
370
360
  // Properties: lwc:inner-html directive
371
- if (element.lwc && element.lwc.innerHTML) {
372
- const expr = typeof element.lwc.innerHTML === 'string'
373
- ? t.literal(element.lwc.innerHTML)
374
- : (0, scope_1.bindExpression)(element.lwc.innerHTML, element, parentStack);
361
+ if (innerHTML) {
362
+ const expr = (0, ast_1.isStringLiteral)(innerHTML.value)
363
+ ? t.literal(innerHTML.value.value)
364
+ : codeGen.bindExpression(innerHTML.value);
375
365
  propsObj.properties.push(t.property(t.identifier('innerHTML'), codeGen.genSanitizedHtmlExpr(expr)));
376
366
  }
377
367
  if (propsObj.properties.length) {
378
368
  data.push(t.property(t.identifier('props'), propsObj));
379
369
  }
380
370
  // Context
381
- if ((lwc === null || lwc === void 0 ? void 0 : lwc.dom) || (lwc === null || lwc === void 0 ? void 0 : lwc.innerHTML)) {
371
+ if (dom || innerHTML) {
382
372
  const contextObj = t.objectExpression([
383
373
  t.property(t.identifier('lwc'), t.objectExpression([t.property(t.identifier('dom'), t.literal('manual'))])),
384
374
  ]);
@@ -387,7 +377,7 @@ function transform(codeGen) {
387
377
  // Key property on VNode
388
378
  if (forKey) {
389
379
  // If element has user-supplied `key` or is in iterator, call `api.k`
390
- const forKeyExpression = (0, scope_1.bindExpression)(forKey, element, parentStack);
380
+ const forKeyExpression = codeGen.bindExpression(forKey.value);
391
381
  const generatedKey = codeGen.genKey(t.literal(codeGen.generateKey()), forKeyExpression);
392
382
  data.push(t.property(t.identifier('key'), generatedKey));
393
383
  }
@@ -397,13 +387,14 @@ function transform(codeGen) {
397
387
  data.push(t.property(t.identifier('key'), t.literal(codeGen.generateKey())));
398
388
  }
399
389
  // Event handler
400
- if (on) {
401
- const onObj = (0, helpers_1.objectToAST)(on, (key) => {
402
- const componentHandler = (0, scope_1.bindExpression)(on[key], element, parentStack);
390
+ if (listeners.length) {
391
+ const listenerObj = Object.fromEntries(listeners.map((listener) => [listener.name, listener]));
392
+ const listenerObjAST = (0, helpers_1.objectToAST)(listenerObj, (key) => {
393
+ const componentHandler = codeGen.bindExpression(listenerObj[key].handler);
403
394
  const handler = codeGen.genBind(componentHandler);
404
- return (0, helpers_1.memorizeHandler)(codeGen, element, parentStack, componentHandler, handler);
395
+ return (0, helpers_1.memorizeHandler)(codeGen, componentHandler, handler);
405
396
  });
406
- data.push(t.property(t.identifier('on'), onObj));
397
+ data.push(t.property(t.identifier('on'), listenerObjAST));
407
398
  }
408
399
  // SVG handling
409
400
  if (element.namespace === constants_2.SVG_NAMESPACE_URI) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
2
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
14
  };
5
15
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.compileToFunction = exports.parse = exports.isElement = exports.IRAttributeType = void 0;
16
+ exports.compileToFunction = exports.parse = void 0;
7
17
  /*
8
18
  * Copyright (c) 2018, salesforce.com, inc.
9
19
  * All rights reserved.
@@ -16,10 +26,7 @@ const config_1 = require("./config");
16
26
  const parser_1 = __importDefault(require("./parser"));
17
27
  const codegen_1 = __importDefault(require("./codegen"));
18
28
  const constants_1 = require("./shared/constants");
19
- var types_1 = require("./shared/types");
20
- Object.defineProperty(exports, "IRAttributeType", { enumerable: true, get: function () { return types_1.IRAttributeType; } });
21
- var ir_1 = require("./shared/ir");
22
- Object.defineProperty(exports, "isElement", { enumerable: true, get: function () { return ir_1.isElement; } });
29
+ __exportStar(require("./shared/types"), exports);
23
30
  function parse(source, config = {}) {
24
31
  const options = (0, config_1.mergeConfig)(config, { format: 'module' });
25
32
  const state = new state_1.default(options);