@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.
- package/dist/commonjs/codegen/codegen.js +16 -13
- package/dist/commonjs/codegen/codegen.js.map +1 -1
- package/dist/commonjs/codegen/formatters/function.js +3 -1
- package/dist/commonjs/codegen/formatters/function.js.map +1 -1
- package/dist/commonjs/codegen/formatters/module.js +3 -1
- package/dist/commonjs/codegen/formatters/module.js.map +1 -1
- package/dist/commonjs/codegen/optimize.js +115 -0
- package/dist/commonjs/codegen/optimize.js.map +1 -0
- package/dist/commonjs/shared/estree.js +9 -1
- package/dist/commonjs/shared/estree.js.map +1 -1
- package/dist/types/codegen/optimize.d.ts +33 -0
- package/dist/types/shared/estree.d.ts +2 -0
- package/package.json +3 -3
|
@@ -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
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,iDAAqC;AAGrC,oDAAsC;AACtC,2CAAoF;AACpF,mDAAsD;AACtD,uCAAmF;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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":"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"}
|
|
@@ -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.
|
|
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.
|
|
29
|
-
"@lwc/shared": "2.
|
|
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",
|