@lwc/template-compiler 2.8.0 → 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.
@@ -30,6 +30,7 @@ const t = __importStar(require("../shared/estree"));
30
30
  const types_1 = require("../shared/types");
31
31
  const constants_1 = require("../shared/constants");
32
32
  const ast_1 = require("../shared/ast");
33
+ const estree_1 = require("../shared/estree");
33
34
  const RENDER_APIS = {
34
35
  iterator: { name: 'i', alias: 'api_iterator' },
35
36
  flatten: { name: 'f', alias: 'api_flatten' },
@@ -70,24 +71,26 @@ class CodeGen {
70
71
  return this.currentKey++;
71
72
  }
72
73
  genElement(tagName, data, children) {
73
- return this._renderApiCall(RENDER_APIS.element, [t.literal(tagName), data, children]);
74
+ const args = [t.literal(tagName), data];
75
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
76
+ args.push(children); // only generate children if non-empty
77
+ }
78
+ return this._renderApiCall(RENDER_APIS.element, args);
74
79
  }
75
80
  genCustomElement(tagName, componentClass, data, children) {
76
81
  this.referencedComponents.add(tagName);
77
- return this._renderApiCall(RENDER_APIS.customElement, [
78
- t.literal(tagName),
79
- componentClass,
80
- data,
81
- children,
82
- ]);
82
+ const args = [t.literal(tagName), componentClass, data];
83
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
84
+ args.push(children); // only generate children if non-empty
85
+ }
86
+ return this._renderApiCall(RENDER_APIS.customElement, args);
83
87
  }
84
88
  genDynamicElement(tagName, ctor, data, children) {
85
- return this._renderApiCall(RENDER_APIS.dynamicCtor, [
86
- t.literal(tagName),
87
- ctor,
88
- data,
89
- children,
90
- ]);
89
+ const args = [t.literal(tagName), ctor, data];
90
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
91
+ args.push(children); // only generate children if non-empty
92
+ }
93
+ return this._renderApiCall(RENDER_APIS.dynamicCtor, args);
91
94
  }
92
95
  genText(value) {
93
96
  const mappedValues = value.map((v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ exports.format = void 0;
29
29
  const t = __importStar(require("../../shared/estree"));
30
30
  const constants_1 = require("../../shared/constants");
31
31
  const helpers_1 = require("../helpers");
32
+ const optimize_1 = require("../optimize");
32
33
  /**
33
34
  * Generate a function body AST from a template ESTree AST. This function can then be instantiated
34
35
  * via `new Function(code, modules)` The generated function retrieves receives the dependent LWC
@@ -59,10 +60,11 @@ function format(templateFn, codeGen) {
59
60
  })),
60
61
  ]);
61
62
  });
63
+ const optimizedTemplateDeclarations = (0, optimize_1.optimizeStaticExpressions)(templateFn);
62
64
  const metadata = (0, helpers_1.generateTemplateMetadata)(codeGen);
63
65
  return t.program([
64
66
  ...lookups,
65
- templateFn,
67
+ ...optimizedTemplateDeclarations,
66
68
  ...metadata,
67
69
  t.returnStatement(t.identifier(constants_1.TEMPLATE_FUNCTION_NAME)),
68
70
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/function.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,sDAA4F;AAG5F,wCAAmF;AAEnF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAChB,eAAe,EACf,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,sCAA0B,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1E,QAAQ,EAAE,IAAI;aACjB,CAAC,CACL;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,CAAC,CAAC,OAAO,CAAC;QACb,GAAG,OAAO;QACV,UAAU;QACV,GAAG,QAAQ;QACX,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AAxBD,wBAwBC"}
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/function.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,sDAA4F;AAG5F,wCAAmF;AACnF,0CAAwD;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAChB,eAAe,EACf,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,sCAA0B,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1E,QAAQ,EAAE,IAAI;aACjB,CAAC,CACL;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEP,MAAM,6BAA6B,GAAG,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,CAAC,CAAC,OAAO,CAAC;QACb,GAAG,OAAO;QACV,GAAG,6BAA6B;QAChC,GAAG,QAAQ;QACX,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AA1BD,wBA0BC"}
@@ -30,6 +30,7 @@ const t = __importStar(require("../../shared/estree"));
30
30
  const naming_1 = require("../../shared/naming");
31
31
  const constants_1 = require("../../shared/constants");
32
32
  const helpers_1 = require("../helpers");
33
+ const optimize_1 = require("../optimize");
33
34
  function generateComponentImports(codeGen) {
34
35
  return Array.from(codeGen.referencedComponents).map((name) => {
35
36
  const localIdentifier = (0, helpers_1.identifierFromComponentName)(name);
@@ -67,8 +68,9 @@ function format(templateFn, codeGen) {
67
68
  codeGen.usedLwcApis.add(constants_1.SECURE_REGISTER_TEMPLATE_METHOD_NAME);
68
69
  const imports = [...generateComponentImports(codeGen), generateLwcApisImport(codeGen)];
69
70
  const metadata = (0, helpers_1.generateTemplateMetadata)(codeGen);
71
+ const optimizedTemplateDeclarations = (0, optimize_1.optimizeStaticExpressions)(templateFn);
70
72
  const templateBody = [
71
- templateFn,
73
+ ...optimizedTemplateDeclarations,
72
74
  t.exportDefaultDeclaration(t.callExpression(t.identifier(constants_1.SECURE_REGISTER_TEMPLATE_METHOD_NAME), [
73
75
  t.identifier(constants_1.TEMPLATE_FUNCTION_NAME),
74
76
  ])),
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,uDAAyC;AACzC,gDAA2D;AAC3D,sDAIgC;AAGhC,wCAAmF;AAEnF,SAAS,wBAAwB,CAAC,OAAgB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,iBAAiB,CACtB,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC3C,CAAC,CAAC,OAAO,CAAC,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC,CACxC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,2BAAe,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,gDAAoC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG;QACjB,UAAU;QACV,CAAC,CAAC,wBAAwB,CACtB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,gDAAoC,CAAC,EAAE;YACjE,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC;SACvC,CAAC,CACL;KACJ,CAAC;IAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,uDAAyC;AACzC,gDAA2D;AAC3D,sDAIgC;AAGhC,wCAAmF;AACnF,0CAAwD;AAExD,SAAS,wBAAwB,CAAC,OAAgB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,iBAAiB,CACtB,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC3C,CAAC,CAAC,OAAO,CAAC,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC,CACxC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,2BAAe,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,gDAAoC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,6BAA6B,GAAG,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG;QACjB,GAAG,6BAA6B;QAChC,CAAC,CAAC,wBAAwB,CACtB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,gDAAoC,CAAC,EAAE;YACjE,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC;SACvC,CAAC,CACL;KACJ,CAAC;IAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAnBD,wBAmBC"}
@@ -0,0 +1,115 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.optimizeStaticExpressions = void 0;
23
+ /*
24
+ * Copyright (c) 2018, salesforce.com, inc.
25
+ * All rights reserved.
26
+ * SPDX-License-Identifier: MIT
27
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
28
+ */
29
+ const astring = __importStar(require("astring"));
30
+ const estree_walker_1 = require("estree-walker");
31
+ const t = __importStar(require("../shared/estree"));
32
+ /**
33
+ * Given a template function, extract all static objects/arrays (e.g. `{ key : 1 }`)
34
+ * and return them as a list of `const` declarations. Also return the modified function
35
+ * that is now referencing those declarations.
36
+ *
37
+ * Example input:
38
+ *
39
+ * ```
40
+ * function tmpl() {
41
+ * return {
42
+ * foo: dynamic(),
43
+ * bar: { static: true },
44
+ * baz: { really: { static: ['yep', 'totally', 'static' ] } }
45
+ * };
46
+ * }
47
+ * ```
48
+ *
49
+ * Example output:
50
+ *
51
+ * ```
52
+ * const stc0 = { static: true };
53
+ * const stc1 = { really: { static: ['yep', 'totally', 'static' ] } };
54
+ * function tmpl() {
55
+ * return {
56
+ * foo: dynamic(),
57
+ * bar: stc0,
58
+ * baz: stc1
59
+ * };
60
+ * }
61
+ * ```
62
+ */
63
+ function optimizeStaticExpressions(templateFn) {
64
+ const result = [];
65
+ const keysToVariableNames = new Map();
66
+ // Return true if this node is an object/array that is fully static
67
+ function isStaticObjectOrArray(node) {
68
+ if (t.isObjectExpression(node)) {
69
+ return node.properties.every((prop) => {
70
+ return (t.isProperty(prop) &&
71
+ !prop.computed &&
72
+ !prop.method &&
73
+ !prop.shorthand &&
74
+ (t.isLiteral(prop.value) || isStaticObjectOrArray(prop.value)));
75
+ });
76
+ }
77
+ else if (t.isArrayExpression(node)) {
78
+ return node.elements.every((element) => {
79
+ return element !== null && (t.isLiteral(element) || isStaticObjectOrArray(element));
80
+ });
81
+ }
82
+ return false;
83
+ }
84
+ function extractStaticVariable(node) {
85
+ // This key generation can probably be improved using a hash code, but stringification is
86
+ // simplest for finding a unique identifier for an object/array expression
87
+ const key = astring.generate(node);
88
+ // Check for duplicates to avoid re-declaring the same object/array multiple times
89
+ // Especially for the empty array (`[]`), which is very common in templates
90
+ if (!keysToVariableNames.has(key)) {
91
+ const variableName = `stc${keysToVariableNames.size}`;
92
+ // e.g. `const stc0 = { /* original object */ };
93
+ const declaration = t.variableDeclaration('const', [
94
+ t.variableDeclarator(t.identifier(variableName), node),
95
+ ]);
96
+ result.push(declaration);
97
+ keysToVariableNames.set(key, variableName);
98
+ }
99
+ return t.identifier(keysToVariableNames.get(key));
100
+ }
101
+ (0, estree_walker_1.walk)(templateFn, {
102
+ enter(node) {
103
+ // For deeply-nested static object, we only want to extract the top-level node
104
+ if (isStaticObjectOrArray(node)) {
105
+ const newNode = extractStaticVariable(node);
106
+ this.replace(newNode);
107
+ this.skip();
108
+ }
109
+ },
110
+ });
111
+ result.push(templateFn);
112
+ return result;
113
+ }
114
+ exports.optimizeStaticExpressions = optimizeStaticExpressions;
115
+ //# sourceMappingURL=optimize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../../src/codegen/optimize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,iDAAmC;AACnC,iDAAqC;AACrC,oDAAsC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,yBAAyB,CACrC,UAAiC;IAEjC,MAAM,MAAM,GAAyD,EAAE,CAAC;IACxE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;IAEtC,mEAAmE;IACnE,SAAS,qBAAqB,CAC1B,IAAgB;QAEhB,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,OAAO,CACH,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;oBAClB,CAAC,IAAI,CAAC,QAAQ;oBACd,CAAC,IAAI,CAAC,MAAM;oBACZ,CAAC,IAAI,CAAC,SAAS;oBACf,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACjE,CAAC;YACN,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,OAAO,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;SACN;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,qBAAqB,CAAC,IAA4C;QACvE,yFAAyF;QACzF,0EAA0E;QAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnC,kFAAkF;QAClF,2EAA2E;QAC3E,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC;YACtD,gDAAgD;YAChD,MAAM,WAAW,GAAG,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBAC/C,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;SAC9C;QAED,OAAO,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAA,oBAAI,EAAC,UAAU,EAAE;QACb,KAAK,CAAC,IAAI;YACN,8EAA8E;YAC9E,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;gBAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAClB,CAAC;AA9DD,8DA8DC"}
@@ -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":";;;AAQA,SAAgB,YAAY,CAAC,IAAgB;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;AACtC,CAAC;AAFD,oCAEC;AAED,SAAgB,kBAAkB,CAAC,IAAgB;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC5C,CAAC;AAFD,gDAEC;AAED,SAAgB,iBAAiB,CAAC,IAAgB;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAC3C,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB,CAAC,IAAgB;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC5C,CAAC;AAFD,gDAEC;AAED,SAAgB,UAAU,CAAC,IAAgB;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,UAAU,CAAC,IAAY,EAAE,MAA8B;IACnE,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAND,gCAMC;AAED,SAAgB,SAAS,CAAC,IAAgB;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,gBAAgB,CAC5B,MAAoC,EACpC,QAAwC,EACxC,MAAoC;IAEpC,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,MAAM;QACN,QAAQ;QACR,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,4CAaC;AAED,SAAgB,cAAc,CAC1B,MAAkC,EAClC,IAAmC,EACnC,MAAkC;IAElC,OAAO;QACH,IAAI,EAAE,gBAAgB;QACtB,MAAM;QACN,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAZD,wCAYC;AAED,SAAgB,OAAO,CACnB,KAA+B,EAC/B,MAAiC;IAEjC,OAAO;QACH,IAAI,EAAE,SAAS;QACf,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,0BASC;AAED,SAAgB,qBAAqB,CACjC,IAAqC,EACrC,UAAiD,EACjD,SAA+C,EAC/C,MAAyC;IAEzC,OAAO;QACH,IAAI,EAAE,uBAAuB;QAC7B,IAAI;QACJ,UAAU;QACV,SAAS;QACT,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,sDAaC;AAED,SAAgB,eAAe,CAC3B,QAAuC,EACvC,QAAuC,EACvC,MAAmC;IAEnC,OAAO;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE,IAAI;QACZ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAZD,0CAYC;AAED,SAAgB,gBAAgB,CAC5B,QAAwC,EACxC,IAAgC,EAChC,KAAkC,EAClC,MAAoC;IAEpC,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,4CAaC;AAED,SAAgB,iBAAiB,CAC7B,QAAyC,EACzC,IAAiC,EACjC,KAAmC,EACnC,MAAqC;IAErC,OAAO;QACH,IAAI,EAAE,mBAAmB;QACzB,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,8CAaC;AAED,SAAgB,oBAAoB,CAChC,QAA4C,EAC5C,IAAoC,EACpC,KAAsC,EACtC,MAAwC;IAExC,OAAO;QACH,IAAI,EAAE,sBAAsB;QAC5B,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,oDAaC;AAED,SAAgB,QAAQ,CACpB,GAAsB,EACtB,KAA0B,EAC1B,MAA4B;IAE5B,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,GAAG;QACH,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAfD,4BAeC;AAED,SAAgB,kBAAkB,CAC9B,GAAgC,EAChC,KAAoC,EACpC,MAAsC;IAEtC,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,GAAG;QACH,KAAK;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAfD,gDAeC;AAED,SAAgB,gBAAgB,CAC5B,UAA4C,EAC5C,MAAoC;IAEpC,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,UAAU;QACV,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,4CASC;AAED,SAAgB,aAAa,CACzB,UAAyC,EACzC,MAAiC;IAEjC,OAAO;QACH,IAAI,EAAE,eAAe;QACrB,UAAU;QACV,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,sCASC;AAED,SAAgB,eAAe,CAC3B,QAAuC,EACvC,MAAmC;IAEnC,OAAO;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ;QACR,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,0CASC;AAED,SAAgB,mBAAmB,CAC/B,UAA+C,EAC/C,MAAuC;IAEvC,OAAO;QACH,IAAI,EAAE,qBAAqB;QAC3B,UAAU;QACV,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,kDASC;AAED,SAAgB,kBAAkB,CAC9B,EAAuB,EACvB,MAAsC,EACtC,IAAkC,EAClC,MAAsC;IAEtC,OAAO;QACH,IAAI,EAAE,oBAAoB;QAC1B,EAAE;QACF,MAAM;QACN,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,gDAaC;AAED,SAAgB,mBAAmB,CAC/B,EAAuB,EACvB,MAAuC,EACvC,IAAmC,EACnC,MAAuC;IAEvC,OAAO;QACH,IAAI,EAAE,qBAAqB;QAC3B,EAAE;QACF,MAAM;QACN,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAbD,kDAaC;AAED,SAAgB,cAAc,CAC1B,IAA8B,EAC9B,MAAkC;IAElC,OAAO;QACH,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,wCASC;AAED,SAAgB,eAAe,CAC3B,QAAuC,EACvC,MAAmC;IAEnC,OAAO;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ;QACR,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,0CASC;AAED,SAAgB,kBAAkB,CAC9B,EAA8B,EAC9B,IAAkC,EAClC,MAAsC;IAEtC,OAAO;QACH,IAAI,EAAE,oBAAoB;QAC1B,EAAE;QACF,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAXD,gDAWC;AAED,SAAgB,mBAAmB,CAC/B,IAAmC,EACnC,YAAmD,EACnD,MAAuC;IAEvC,OAAO;QACH,IAAI,EAAE,qBAAqB;QAC3B,IAAI;QACJ,YAAY;QACZ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAXD,kDAWC;AAED,SAAgB,iBAAiB,CAC7B,UAA6C,EAC7C,MAAqC,EACrC,MAAqC;IAErC,OAAO;QACH,IAAI,EAAE,mBAAmB;QACzB,UAAU;QACV,MAAM;QACN,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAXD,8CAWC;AAED,SAAgB,sBAAsB,CAClC,KAAwC,EACxC,MAA0C;IAE1C,OAAO;QACH,IAAI,EAAE,wBAAwB;QAC9B,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,wDASC;AAED,SAAgB,eAAe,CAC3B,QAAuC,EACvC,KAAiC,EACjC,MAAmC;IAEnC,OAAO;QACH,IAAI,EAAE,iBAAiB;QACvB,QAAQ;QACR,KAAK;QACL,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAXD,0CAWC;AACD,SAAgB,wBAAwB,CACpC,WAAsD,EACtD,MAA4C;IAE5C,OAAO;QACH,IAAI,EAAE,0BAA0B;QAChC,WAAW;QACX,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AATD,4DASC;AAED,SAAgB,OAAO,CAAC,IAAuB,EAAE,MAA2B;IACxE,OAAO;QACH,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,QAAQ;QACpB,IAAI;QACJ,GAAG,MAAM;KACZ,CAAC;AACN,CAAC;AAPD,0BAOC"}
@@ -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>;
@@ -2,6 +2,8 @@ import type * as t from 'estree';
2
2
  export declare function isIdentifier(node: t.BaseNode): node is t.Identifier;
3
3
  export declare function isMemberExpression(node: t.BaseNode): node is t.MemberExpression;
4
4
  export declare function isArrayExpression(node: t.BaseNode): node is t.ArrayExpression;
5
+ export declare function isObjectExpression(node: t.BaseNode): node is t.ObjectExpression;
6
+ export declare function isProperty(node: t.BaseNode): node is t.Property;
5
7
  export declare function identifier(name: string, config?: Partial<t.Identifier>): t.Identifier;
6
8
  export declare function isLiteral(node: t.BaseNode): node is t.Literal;
7
9
  export declare function memberExpression(object: t.MemberExpression['object'], property: t.MemberExpression['property'], config?: Partial<t.MemberExpression>): t.MemberExpression;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lwc/template-compiler",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "Template compiler package",
5
5
  "homepage": "https://lwc.dev/",
6
6
  "repository": {
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "//": "Currently can't upgrade estree-walker to v3.0.0 because it dropped CommonJS support: https://git.io/JXguS",
27
27
  "dependencies": {
28
- "@lwc/errors": "2.8.0",
29
- "@lwc/shared": "2.8.0",
28
+ "@lwc/errors": "2.9.0",
29
+ "@lwc/shared": "2.9.0",
30
30
  "acorn": "~8.7.0",
31
31
  "astring": "~1.8.1",
32
32
  "estree-walker": "~2.0.2",