babel-plugin-wallace 0.14.0 → 0.15.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/config.d.ts +3 -0
- package/dist/config.js +12 -3
- package/dist/config.js.map +1 -1
- package/dist/consolidation/ComponentDefinitionData.d.ts +9 -4
- package/dist/consolidation/ComponentDefinitionData.js +15 -13
- package/dist/consolidation/ComponentDefinitionData.js.map +1 -1
- package/dist/consolidation/processNodes.js +63 -52
- package/dist/consolidation/processNodes.js.map +1 -1
- package/dist/consolidation/types.d.ts +3 -3
- package/dist/consolidation/utils.d.ts +1 -2
- package/dist/consolidation/utils.js +3 -10
- package/dist/consolidation/utils.js.map +1 -1
- package/dist/constants.d.ts +13 -11
- package/dist/constants.js +15 -10
- package/dist/constants.js.map +1 -1
- package/dist/contexts/handlers.js +1 -1
- package/dist/contexts/handlers.js.map +1 -1
- package/dist/directives.js +1 -19
- package/dist/directives.js.map +1 -1
- package/dist/errors.d.ts +1 -4
- package/dist/errors.js +3 -6
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +2 -40
- package/dist/index.js.map +1 -1
- package/dist/models/component.d.ts +3 -1
- package/dist/models/component.js +19 -5
- package/dist/models/component.js.map +1 -1
- package/dist/models/node.d.ts +13 -7
- package/dist/models/node.js +23 -22
- package/dist/models/node.js.map +1 -1
- package/dist/visitors/attribute.d.ts +2 -1
- package/dist/visitors/attribute.js +4 -1
- package/dist/visitors/attribute.js.map +1 -1
- package/dist/visitors/library.d.ts +26 -24
- package/dist/visitors/library.js +52 -47
- package/dist/visitors/library.js.map +1 -1
- package/dist/visitors/main.d.ts +3 -0
- package/dist/visitors/main.js +39 -0
- package/dist/visitors/main.js.map +1 -0
- package/dist/writers/defineComponent.js +14 -7
- package/dist/writers/defineComponent.js.map +1 -1
- package/package.json +2 -2
package/dist/models/node.js
CHANGED
|
@@ -25,9 +25,9 @@ class ExtractedNode {
|
|
|
25
25
|
this.eventListeners = [];
|
|
26
26
|
this.bindInstructions = {};
|
|
27
27
|
this.hasConditionalChildren = false;
|
|
28
|
+
this.hasNestedChildren = false;
|
|
28
29
|
this.hasRepeatedChildren = false;
|
|
29
30
|
this.requiredImports = new Set();
|
|
30
|
-
// poolExpression: Expression | undefined;
|
|
31
31
|
/**
|
|
32
32
|
* The sets of classes that may be toggled.
|
|
33
33
|
*/
|
|
@@ -145,9 +145,6 @@ class ExtractedNode {
|
|
|
145
145
|
setRepeatKey(expression) {
|
|
146
146
|
this.repeatKey = expression;
|
|
147
147
|
}
|
|
148
|
-
setRepeatPool(expression) {
|
|
149
|
-
this.repeatPool = expression;
|
|
150
|
-
}
|
|
151
148
|
/**
|
|
152
149
|
* Called on the parent of a repeat.
|
|
153
150
|
*/
|
|
@@ -156,15 +153,11 @@ class ExtractedNode {
|
|
|
156
153
|
return {
|
|
157
154
|
expression: __classPrivateFieldGet(this, _ExtractedNode_repeatExpression, "f"),
|
|
158
155
|
componentCls: this.tagName,
|
|
159
|
-
repeatKey: this.repeatKey
|
|
160
|
-
poolExpression: this.repeatPool
|
|
156
|
+
repeatKey: this.repeatKey
|
|
161
157
|
};
|
|
162
158
|
}
|
|
163
159
|
}
|
|
164
160
|
setStub(name) {
|
|
165
|
-
if (!this.parent) {
|
|
166
|
-
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.CANNOT_MAKE_ROOT_ELEMENT_A_STUB);
|
|
167
|
-
}
|
|
168
161
|
if (__classPrivateFieldGet(this, _ExtractedNode_stubName, "f")) {
|
|
169
162
|
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.STUB_ALREADY_DEFINED);
|
|
170
163
|
}
|
|
@@ -179,6 +172,12 @@ class ExtractedNode {
|
|
|
179
172
|
}
|
|
180
173
|
exports.ExtractedNode = ExtractedNode;
|
|
181
174
|
_ExtractedNode_repeatExpression = new WeakMap(), _ExtractedNode_stubName = new WeakMap(), _ExtractedNode_visibilityToggle = new WeakMap(), _ExtractedNode_ref = new WeakMap(), _ExtractedNode_part = new WeakMap(), _ExtractedNode_props = new WeakMap(), _ExtractedNode_ctrl = new WeakMap();
|
|
175
|
+
/**
|
|
176
|
+
* Class for tag nodes:
|
|
177
|
+
* <img />
|
|
178
|
+
* <div>...</div>
|
|
179
|
+
* <NestedComponent />
|
|
180
|
+
*/
|
|
182
181
|
class TagNode extends ExtractedNode {
|
|
183
182
|
constructor(path, address, initialIndex, parent, component, // TODO: fix type circular import.
|
|
184
183
|
tagName, isNestedComponent, isRepeatedComponent) {
|
|
@@ -188,17 +187,15 @@ class TagNode extends ExtractedNode {
|
|
|
188
187
|
this.tagName = tagName;
|
|
189
188
|
this.isNestedComponent = isNestedComponent;
|
|
190
189
|
this.isRepeatedComponent = isRepeatedComponent;
|
|
191
|
-
if (!this.parent) {
|
|
192
|
-
|
|
193
|
-
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.REPEAT_NOT_ALLOWED_ON_ROOT);
|
|
194
|
-
}
|
|
195
|
-
else if (this.isNestedComponent) {
|
|
196
|
-
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT);
|
|
197
|
-
}
|
|
190
|
+
if (!this.parent && (this.isRepeatedComponent || this.isNestedComponent)) {
|
|
191
|
+
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT);
|
|
198
192
|
}
|
|
199
193
|
if (this.isRepeatedComponent) {
|
|
200
194
|
this.parent.hasRepeatedChildren = true;
|
|
201
195
|
}
|
|
196
|
+
else if (this.isNestedComponent) {
|
|
197
|
+
this.parent.hasNestedChildren = true;
|
|
198
|
+
}
|
|
202
199
|
}
|
|
203
200
|
addFixedAttribute(name, value) {
|
|
204
201
|
this.attributes.push({ name, value });
|
|
@@ -208,7 +205,7 @@ class TagNode extends ExtractedNode {
|
|
|
208
205
|
this.attributes.push({ name, value: constants_1.HTML_SPLITTER });
|
|
209
206
|
}
|
|
210
207
|
getElement() {
|
|
211
|
-
if (this.isRepeatedComponent) {
|
|
208
|
+
if (this.isRepeatedComponent || this.isNestedComponent) {
|
|
212
209
|
return undefined;
|
|
213
210
|
}
|
|
214
211
|
const element = (0, utils_1.createElement)(this.tagName);
|
|
@@ -220,14 +217,18 @@ class TagNode extends ExtractedNode {
|
|
|
220
217
|
}
|
|
221
218
|
}
|
|
222
219
|
exports.TagNode = TagNode;
|
|
223
|
-
class StubNode extends
|
|
224
|
-
constructor(path, address, initialIndex, parent,
|
|
225
|
-
|
|
220
|
+
class StubNode extends TagNode {
|
|
221
|
+
constructor(path, address, initialIndex, parent, component, // TODO: fix type circular import.
|
|
222
|
+
name) {
|
|
223
|
+
super(path, address, initialIndex, parent, component, name, false, false);
|
|
224
|
+
if (!this.parent) {
|
|
225
|
+
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT);
|
|
226
|
+
}
|
|
227
|
+
this.parent.hasNestedChildren = true;
|
|
226
228
|
this.setStub(name);
|
|
227
229
|
}
|
|
228
230
|
getElement() {
|
|
229
|
-
|
|
230
|
-
return this.element;
|
|
231
|
+
return undefined;
|
|
231
232
|
}
|
|
232
233
|
}
|
|
233
234
|
exports.StubNode = StubNode;
|
package/dist/models/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { Component, TagNode } from "../models";
|
|
|
4
4
|
interface State {
|
|
5
5
|
extractedNode: TagNode;
|
|
6
6
|
component: Component;
|
|
7
|
+
allowAttributes: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare const attributeVisitors: {
|
|
9
|
-
JSXAttribute(path: NodePath<JSXAttribute>, { extractedNode, component }: State): void;
|
|
10
|
+
JSXAttribute(path: NodePath<JSXAttribute>, { extractedNode, component, allowAttributes }: State): void;
|
|
10
11
|
};
|
|
11
12
|
export {};
|
|
@@ -49,7 +49,7 @@ function extractValue(path) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
exports.attributeVisitors = {
|
|
52
|
-
JSXAttribute(path, { extractedNode, component }) {
|
|
52
|
+
JSXAttribute(path, { extractedNode, component, allowAttributes }) {
|
|
53
53
|
if (extractedNode.path.node !== path.parentPath.parentPath.node) {
|
|
54
54
|
// We exit here as otherwise we'd traverse attributes of nested JSXElements too.
|
|
55
55
|
return;
|
|
@@ -69,6 +69,9 @@ exports.attributeVisitors = {
|
|
|
69
69
|
handler.apply(extractedNode, extractedValue, qualifier, base);
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
+
if (!allowAttributes) {
|
|
73
|
+
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_WITH_ATTRIBUTES);
|
|
74
|
+
}
|
|
72
75
|
const attName = qualifier ? `${base}:${qualifier}` : base;
|
|
73
76
|
switch (extractedValue.type) {
|
|
74
77
|
case "expression":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/visitors/attribute.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAGlC,sCAA0C;AAC1C,4CAAkD;AAElD,sCAAkD;AAClD,gDAA0D;
|
|
1
|
+
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/visitors/attribute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
import type { NodePath } from "@babel/core";
|
|
2
|
-
import type {
|
|
3
|
-
/**
|
|
4
|
-
* Very simple visitor which replaces the entire if statement with its consequent or
|
|
5
|
-
* alternate.
|
|
6
|
-
*
|
|
7
|
-
* The test must be in this exact format:
|
|
8
|
-
*
|
|
9
|
-
* if (wallaceConfig.flags.allowStubs) {}
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
2
|
+
import type { IfStatement, VariableDeclarator } from "@babel/types";
|
|
12
3
|
export declare const flagVisitor: {
|
|
4
|
+
/**
|
|
5
|
+
* Conditionally removes statement/expressions/identifiers etc...
|
|
6
|
+
* based on leading comments:
|
|
7
|
+
*
|
|
8
|
+
* #INCLUDE-IF: allowCtrl
|
|
9
|
+
* #EXCLUDE-IF: allowCtrl
|
|
10
|
+
*
|
|
11
|
+
* WARNING: NOT RELIABLE! It sometimes knocks out subsequent nodes, so only use on
|
|
12
|
+
* ende nodes.
|
|
13
|
+
*/
|
|
14
|
+
enter(path: NodePath): void;
|
|
15
|
+
/**
|
|
16
|
+
* Replaces the entire if statement with its consequent or alternate:
|
|
17
|
+
*
|
|
18
|
+
* The test must be in this exact format:
|
|
19
|
+
*
|
|
20
|
+
* if (wallaceConfig.flags.allowStubs) {
|
|
21
|
+
* // code to keep
|
|
22
|
+
* } else {
|
|
23
|
+
* // code to remove (optional)
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* You can't do anything more complex in the test or the conditions.
|
|
27
|
+
* There are places where this can't be used, in which case use a comment.
|
|
28
|
+
*/
|
|
13
29
|
IfStatement(path: NodePath<IfStatement>): void;
|
|
14
30
|
};
|
|
15
|
-
/**
|
|
16
|
-
* This set of visitors removes references to `ctrl`.
|
|
17
|
-
*/
|
|
18
|
-
export declare const removeCtrl: {
|
|
19
|
-
AssignmentExpression(path: NodePath<AssignmentExpression>): void;
|
|
20
|
-
MemberExpression(path: NodePath<MemberExpression>): void;
|
|
21
|
-
Identifier(path: NodePath<Identifier>): void;
|
|
22
|
-
};
|
|
23
31
|
/**
|
|
24
32
|
* This flattens the `update` and `_u` methods into one, which are
|
|
25
33
|
* only separate to allow parts, as this inproves performance when
|
|
@@ -28,9 +36,3 @@ export declare const removeCtrl: {
|
|
|
28
36
|
export declare const flattenUpdate: {
|
|
29
37
|
VariableDeclarator(path: NodePath<VariableDeclarator>): void;
|
|
30
38
|
};
|
|
31
|
-
/**
|
|
32
|
-
* Removes the last two parameters from repeaters, which aren't used.
|
|
33
|
-
*/
|
|
34
|
-
export declare const removeRepeaterDetacherParams: {
|
|
35
|
-
FunctionDeclaration(path: NodePath<FunctionDeclaration>): void;
|
|
36
|
-
};
|
package/dist/visitors/library.js
CHANGED
|
@@ -1,20 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
3
|
+
exports.flattenUpdate = exports.flagVisitor = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* These visitors should only run on the wallace source files and tests.
|
|
6
|
+
* */
|
|
5
7
|
const t = require("@babel/types");
|
|
8
|
+
const errors_1 = require("../errors");
|
|
6
9
|
const config_1 = require("../config");
|
|
7
10
|
const constants_1 = require("../constants");
|
|
8
|
-
/**
|
|
9
|
-
* Very simple visitor which replaces the entire if statement with its consequent or
|
|
10
|
-
* alternate.
|
|
11
|
-
*
|
|
12
|
-
* The test must be in this exact format:
|
|
13
|
-
*
|
|
14
|
-
* if (wallaceConfig.flags.allowStubs) {}
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
11
|
exports.flagVisitor = {
|
|
12
|
+
/**
|
|
13
|
+
* Conditionally removes statement/expressions/identifiers etc...
|
|
14
|
+
* based on leading comments:
|
|
15
|
+
*
|
|
16
|
+
* #INCLUDE-IF: allowCtrl
|
|
17
|
+
* #EXCLUDE-IF: allowCtrl
|
|
18
|
+
*
|
|
19
|
+
* WARNING: NOT RELIABLE! It sometimes knocks out subsequent nodes, so only use on
|
|
20
|
+
* ende nodes.
|
|
21
|
+
*/
|
|
22
|
+
enter(path) {
|
|
23
|
+
const leadingComments = path.node.leadingComments;
|
|
24
|
+
if (!leadingComments || leadingComments.length === 0)
|
|
25
|
+
return;
|
|
26
|
+
path.node.leadingComments.forEach(comment => {
|
|
27
|
+
const value = comment.value, include = value.includes("#INCLUDE-IF:"), exclude = value.includes("#EXCLUDE-IF:");
|
|
28
|
+
if (include || exclude) {
|
|
29
|
+
const flag = getFlagFromComment(path, value);
|
|
30
|
+
const flagEnabled = config_1.wallaceConfig.flags[flag];
|
|
31
|
+
if ((flagEnabled && exclude) || (!flagEnabled && include)) {
|
|
32
|
+
path.remove();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Replaces the entire if statement with its consequent or alternate:
|
|
39
|
+
*
|
|
40
|
+
* The test must be in this exact format:
|
|
41
|
+
*
|
|
42
|
+
* if (wallaceConfig.flags.allowStubs) {
|
|
43
|
+
* // code to keep
|
|
44
|
+
* } else {
|
|
45
|
+
* // code to remove (optional)
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* You can't do anything more complex in the test or the conditions.
|
|
49
|
+
* There are places where this can't be used, in which case use a comment.
|
|
50
|
+
*/
|
|
18
51
|
IfStatement(path) {
|
|
19
52
|
const test = path.node.test;
|
|
20
53
|
if (t.isMemberExpression(test)) {
|
|
@@ -39,30 +72,6 @@ exports.flagVisitor = {
|
|
|
39
72
|
}
|
|
40
73
|
}
|
|
41
74
|
};
|
|
42
|
-
/**
|
|
43
|
-
* This set of visitors removes references to `ctrl`.
|
|
44
|
-
*/
|
|
45
|
-
exports.removeCtrl = {
|
|
46
|
-
AssignmentExpression(path) {
|
|
47
|
-
// @ts-ignore
|
|
48
|
-
if (path.node.right.name === "ctrl") {
|
|
49
|
-
path.remove();
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
MemberExpression(path) {
|
|
53
|
-
// @ts-ignore
|
|
54
|
-
const name = path.node.property.name;
|
|
55
|
-
if (name === "ctrl") {
|
|
56
|
-
path.remove();
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
Identifier(path) {
|
|
60
|
-
const name = path.node.name;
|
|
61
|
-
if (name === "ctrl") {
|
|
62
|
-
path.remove();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
75
|
/**
|
|
67
76
|
* This flattens the `update` and `_u` methods into one, which are
|
|
68
77
|
* only separate to allow parts, as this inproves performance when
|
|
@@ -93,17 +102,13 @@ exports.flattenUpdate = {
|
|
|
93
102
|
}
|
|
94
103
|
}
|
|
95
104
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
FunctionDeclaration(path) {
|
|
101
|
-
var _a, _b;
|
|
102
|
-
// @ts-ignore
|
|
103
|
-
if ((_b = (_a = path.node.id) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.endsWith("Repeater")) {
|
|
104
|
-
path.node.params.pop();
|
|
105
|
-
path.node.params.pop();
|
|
106
|
-
}
|
|
105
|
+
function getFlagFromComment(path, comment) {
|
|
106
|
+
const chunks = comment.split(":");
|
|
107
|
+
if (chunks.length !== 2) {
|
|
108
|
+
(0, errors_1.error)(path, "Badly formed compiler comment");
|
|
107
109
|
}
|
|
108
|
-
|
|
110
|
+
const flag = chunks[1].trim();
|
|
111
|
+
config_1.wallaceConfig.ensureFlagIsValid(flag);
|
|
112
|
+
return flag;
|
|
113
|
+
}
|
|
109
114
|
//# sourceMappingURL=library.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/visitors/library.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/visitors/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wallacePlugin = wallacePlugin;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
const module_1 = require("../models/module");
|
|
6
|
+
const program_1 = require("./program");
|
|
7
|
+
const library_1 = require("./library");
|
|
8
|
+
// The general pattern involves visting high-level nodes where we instantiate models
|
|
9
|
+
// which are passed to traverse calls with sets of visitors for low-level nodes,
|
|
10
|
+
// which do some of their own transformations and call helper methods to add state.
|
|
11
|
+
// The higher level nodes may then use the helpers with their collected state after
|
|
12
|
+
// the nested traversal.
|
|
13
|
+
//
|
|
14
|
+
// This avoids the use of global state which would be necessary if visitors were
|
|
15
|
+
// all in the same set.
|
|
16
|
+
function wallacePlugin({ types: t }) {
|
|
17
|
+
return {
|
|
18
|
+
visitor: {
|
|
19
|
+
Program: {
|
|
20
|
+
enter(path, pluginPass) {
|
|
21
|
+
config_1.wallaceConfig.applyOptions(pluginPass.opts);
|
|
22
|
+
const module = new module_1.Module(path);
|
|
23
|
+
//@ts-ignore
|
|
24
|
+
const filename = path.hub.file.opts.filename;
|
|
25
|
+
if (filename &&
|
|
26
|
+
(filename.includes("/wallace/lib/") || filename.includes("/wallace/tests/"))) {
|
|
27
|
+
path.traverse(library_1.flagVisitor, { module });
|
|
28
|
+
if (!config_1.wallaceConfig.flags.allowParts) {
|
|
29
|
+
path.traverse(library_1.flattenUpdate, { module });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
path.traverse(program_1.programVisitors, { module });
|
|
33
|
+
module.addMissingImports();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/visitors/main.ts"],"names":[],"mappings":";;AAiBA,sCAwBC;AAtCD,sCAA0C;AAC1C,6CAA0C;AAC1C,uCAA4C;AAC5C,uCAAuD;AAEvD,oFAAoF;AACpF,gFAAgF;AAChF,mFAAmF;AACnF,mFAAmF;AACnF,wBAAwB;AACxB,EAAE;AACF,gFAAgF;AAChF,uBAAuB;AAEvB,SAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAS;IAC/C,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,KAAK,CAAC,IAAuB,EAAE,UAAsB;oBACnD,sBAAa,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,CAAC;oBAChC,YAAY;oBACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAkB,CAAC;oBACvD,IACE,QAAQ;wBACR,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAC5E,CAAC;wBACD,IAAI,CAAC,QAAQ,CAAC,qBAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;wBACvC,IAAI,CAAC,sBAAa,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;4BACpC,IAAI,CAAC,QAAQ,CAAC,uBAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC3C,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,QAAQ,CAAC,yBAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC3C,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -36,11 +36,12 @@ function buildWatchesArg(componentDefinition) {
|
|
|
36
36
|
c: buildObjectExpression(watch.callbacks)
|
|
37
37
|
};
|
|
38
38
|
if (watch.shieldInfo) {
|
|
39
|
-
const visibilityToggle = {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const visibilityToggle = {};
|
|
40
|
+
if (watch.shieldInfo.lookupIndex !== undefined) {
|
|
41
|
+
visibilityToggle.q = t.numericLiteral(watch.shieldInfo.lookupIndex);
|
|
42
|
+
visibilityToggle.s = t.numericLiteral(watch.shieldInfo.skipCount || 0);
|
|
43
|
+
visibilityToggle.r = t.numericLiteral(watch.shieldInfo.reverse ? 1 : 0);
|
|
44
|
+
}
|
|
44
45
|
if (watch.shieldInfo.detacher) {
|
|
45
46
|
const detacher = watch.shieldInfo.detacher;
|
|
46
47
|
visibilityToggle["d"] = t.newExpression(t.identifier(constants_1.IMPORTABLES.detacher), [
|
|
@@ -79,8 +80,8 @@ function buildConstructor(componentDefinition) {
|
|
|
79
80
|
if (componentDefinition.parts.length > 0) {
|
|
80
81
|
chainedConstExpressions.push(assignAndDeclare(constants_1.COMPONENT_PROPERTIES.part, emptyObject()));
|
|
81
82
|
}
|
|
82
|
-
componentDefinition.
|
|
83
|
-
chainedConstExpressions.push(t.variableDeclarator(
|
|
83
|
+
componentDefinition.additionalDeclarations.forEach(({ id, expression }) => {
|
|
84
|
+
chainedConstExpressions.push(t.variableDeclarator(id, expression));
|
|
84
85
|
});
|
|
85
86
|
const expressions = [
|
|
86
87
|
assignThis(constants_1.COMPONENT_PROPERTIES.props, emptyObject()),
|
|
@@ -102,6 +103,9 @@ function buildConstructor(componentDefinition) {
|
|
|
102
103
|
...expressions.map(expr => t.expressionStatement(expr))
|
|
103
104
|
]));
|
|
104
105
|
}
|
|
106
|
+
function buildDismountKeys(componentDefinition) {
|
|
107
|
+
return t.arrayExpression(componentDefinition.dismountKeys.map(key => t.numericLiteral(key)));
|
|
108
|
+
}
|
|
105
109
|
function buildDefineComponentCall(component) {
|
|
106
110
|
const componentDefinition = (0, consolidation_1.consolidateComponent)(component);
|
|
107
111
|
const args = [
|
|
@@ -110,6 +114,9 @@ function buildDefineComponentCall(component) {
|
|
|
110
114
|
buildLookupsArg(componentDefinition),
|
|
111
115
|
buildConstructor(componentDefinition)
|
|
112
116
|
];
|
|
117
|
+
if (config_1.wallaceConfig.flags.allowDismount) {
|
|
118
|
+
args.push(buildDismountKeys(componentDefinition));
|
|
119
|
+
}
|
|
113
120
|
if (componentDefinition.baseComponent) {
|
|
114
121
|
args.push(componentDefinition.baseComponent);
|
|
115
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineComponent.js","sourceRoot":"","sources":["../../src/writers/defineComponent.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"defineComponent.js","sourceRoot":"","sources":["../../src/writers/defineComponent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babel-plugin-wallace",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"author": "Andrew Buchan",
|
|
5
5
|
"description": "The babel plugin for wallace",
|
|
6
6
|
"homepage": "https://wallace.js.org",
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"source-map-support": "^0.5.21",
|
|
25
25
|
"typescript": "^5.6.3"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "87a69fe8a8f3b8dd20e66eb0d125998658272931"
|
|
28
28
|
}
|