babel-plugin-wallace 0.14.1 → 0.16.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/ast-helpers.d.ts +35 -4
- package/dist/ast-helpers.js +83 -14
- package/dist/ast-helpers.js.map +1 -1
- 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 +94 -92
- 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 +0 -9
- package/dist/consolidation/utils.js.map +1 -1
- package/dist/constants.d.ts +14 -10
- package/dist/constants.js +12 -8
- 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 +3 -82
- package/dist/directives.js.map +1 -1
- package/dist/errors.d.ts +3 -10
- package/dist/errors.js +22 -25
- 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 +4 -3
- package/dist/models/component.js +16 -22
- package/dist/models/component.js.map +1 -1
- package/dist/models/index.d.ts +2 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/node.d.ts +23 -21
- package/dist/models/node.js +40 -67
- package/dist/models/node.js.map +1 -1
- package/dist/visitors/attribute.d.ts +2 -1
- package/dist/visitors/attribute.js +6 -46
- package/dist/visitors/attribute.js.map +1 -1
- package/dist/visitors/jsx.js +9 -27
- package/dist/visitors/jsx.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/directives.js
CHANGED
|
@@ -49,12 +49,6 @@ class ClassDirective extends models_1.Directive {
|
|
|
49
49
|
ClassDirective.attributeName = "class";
|
|
50
50
|
ClassDirective.allowString = true;
|
|
51
51
|
ClassDirective.allowQualifier = true;
|
|
52
|
-
ClassDirective.help = `
|
|
53
|
-
Without a qualifer this acts as a normal attribute, but with a qualifier it creates
|
|
54
|
-
a toggle target for use with the "toggle" directive:
|
|
55
|
-
|
|
56
|
-
/h <div class:danger="btn-danger" toggle:danger={expr}></div>
|
|
57
|
-
`;
|
|
58
52
|
class CssDirective extends models_1.Directive {
|
|
59
53
|
apply(node, value, _qualifier, _base) {
|
|
60
54
|
node.addStaticAttribute("class", value.expression);
|
|
@@ -115,41 +109,19 @@ class HideDirective extends models_1.Directive {
|
|
|
115
109
|
}
|
|
116
110
|
}
|
|
117
111
|
HideDirective.attributeName = "hide";
|
|
118
|
-
HideDirective.allowOnNested = true;
|
|
119
|
-
HideDirective.help = `
|
|
120
|
-
Hides an element by toggling its hidden attribute.
|
|
121
|
-
|
|
122
|
-
/h <div hide={}></div>
|
|
123
|
-
`;
|
|
124
112
|
class HtmlDirective extends models_1.Directive {
|
|
125
113
|
apply(node, value, _qualifier, _base) {
|
|
126
114
|
node.watchAttribute("innerHTML", value.expression);
|
|
127
115
|
}
|
|
128
116
|
}
|
|
129
117
|
HtmlDirective.attributeName = "html";
|
|
130
|
-
HtmlDirective.help = `
|
|
131
|
-
|
|
132
|
-
/h <div html={'<div>hello</div>'}></div>
|
|
133
|
-
`;
|
|
134
118
|
class IfDirective extends models_1.Directive {
|
|
135
119
|
apply(node, value, _qualifier, _base) {
|
|
136
120
|
node.setVisibilityToggle(value.expression, true, true);
|
|
137
121
|
}
|
|
138
122
|
}
|
|
139
123
|
IfDirective.attributeName = "if";
|
|
140
|
-
IfDirective.
|
|
141
|
-
Conditionally includes/exludes an element from the DOM.
|
|
142
|
-
|
|
143
|
-
/h <div if={}></div>
|
|
144
|
-
`;
|
|
145
|
-
class ItemsDirective extends models_1.Directive {
|
|
146
|
-
apply(node, value, _qualifier, _base) {
|
|
147
|
-
node.setRepeatExpression(value.expression);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
ItemsDirective.attributeName = "items";
|
|
151
|
-
ItemsDirective.allowOnRepeated = true;
|
|
152
|
-
ItemsDirective.allowOnNormalElement = false;
|
|
124
|
+
IfDirective.allowOnNested = true;
|
|
153
125
|
class KeyDirective extends models_1.Directive {
|
|
154
126
|
apply(node, value, _qualifier, _base) {
|
|
155
127
|
node.setRepeatKey(value.expression || value.value);
|
|
@@ -159,13 +131,6 @@ KeyDirective.attributeName = "key";
|
|
|
159
131
|
KeyDirective.allowString = true;
|
|
160
132
|
KeyDirective.allowOnRepeated = true;
|
|
161
133
|
KeyDirective.allowOnNormalElement = false;
|
|
162
|
-
KeyDirective.help = `
|
|
163
|
-
Specifies the key for a repeated node. Can either specify a function:
|
|
164
|
-
/h <Foo.repeat props={} key={(x) => x.id}></div>
|
|
165
|
-
Or a string:
|
|
166
|
-
/h <Foo.repeat props={} key="id"></div>
|
|
167
|
-
If specifying a key, you may not specify a pool.
|
|
168
|
-
`;
|
|
169
134
|
class OnEventDirective extends models_1.Directive {
|
|
170
135
|
apply(node, value, _qualifier, base) {
|
|
171
136
|
if (value.type === "string") {
|
|
@@ -180,11 +145,6 @@ OnEventDirective.attributeName = "on*";
|
|
|
180
145
|
OnEventDirective.allowString = true;
|
|
181
146
|
OnEventDirective.mayAccessElement = true;
|
|
182
147
|
OnEventDirective.mayAccessEvent = true;
|
|
183
|
-
OnEventDirective.help = `
|
|
184
|
-
Creates an event handler:
|
|
185
|
-
|
|
186
|
-
/h <div onclick={alert('hello')}></div>
|
|
187
|
-
`;
|
|
188
148
|
class PartDirective extends models_1.Directive {
|
|
189
149
|
apply(node, _value, qualifier, _base) {
|
|
190
150
|
config_1.wallaceConfig.ensureFlagIstrue(node.path, config_1.FlagValue.allowParts);
|
|
@@ -193,23 +153,10 @@ class PartDirective extends models_1.Directive {
|
|
|
193
153
|
}
|
|
194
154
|
PartDirective.attributeName = "part";
|
|
195
155
|
PartDirective.allowOnNested = true;
|
|
156
|
+
PartDirective.allowOnRepeated = true;
|
|
196
157
|
PartDirective.allowNull = true;
|
|
197
158
|
PartDirective.allowExpression = false;
|
|
198
159
|
PartDirective.requireQualifier = true;
|
|
199
|
-
PartDirective.help = `
|
|
200
|
-
Saves a reference to a part of a component which can be updated.
|
|
201
|
-
|
|
202
|
-
/h <div part:title></div>
|
|
203
|
-
`;
|
|
204
|
-
class PoolDirective extends models_1.Directive {
|
|
205
|
-
apply(node, value, _qualifier, _base) {
|
|
206
|
-
node.setRepeatPool(value.expression);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
PoolDirective.attributeName = "pool";
|
|
210
|
-
PoolDirective.allowOnRepeated = true;
|
|
211
|
-
PoolDirective.allowOnNested = false;
|
|
212
|
-
PoolDirective.allowOnNormalElement = false;
|
|
213
160
|
class PropsDirective extends models_1.Directive {
|
|
214
161
|
apply(node, value, _qualifier, _base) {
|
|
215
162
|
node.setProps(value.expression);
|
|
@@ -217,6 +164,7 @@ class PropsDirective extends models_1.Directive {
|
|
|
217
164
|
}
|
|
218
165
|
PropsDirective.attributeName = "props";
|
|
219
166
|
PropsDirective.allowOnNested = true;
|
|
167
|
+
PropsDirective.allowOnRepeated = true;
|
|
220
168
|
PropsDirective.allowOnNormalElement = false;
|
|
221
169
|
class RefDirective extends models_1.Directive {
|
|
222
170
|
apply(node, _value, qualifier, _base) {
|
|
@@ -228,23 +176,12 @@ RefDirective.allowOnNested = true;
|
|
|
228
176
|
RefDirective.allowNull = true;
|
|
229
177
|
RefDirective.allowExpression = false;
|
|
230
178
|
RefDirective.requireQualifier = true;
|
|
231
|
-
RefDirective.help = `
|
|
232
|
-
Saves a reference to an element or nested component:
|
|
233
|
-
|
|
234
|
-
/h <div ref:title></div>
|
|
235
|
-
`;
|
|
236
179
|
class ShowDirective extends models_1.Directive {
|
|
237
180
|
apply(node, value, _qualifier, _base) {
|
|
238
181
|
node.setVisibilityToggle(value.expression, true, false);
|
|
239
182
|
}
|
|
240
183
|
}
|
|
241
184
|
ShowDirective.attributeName = "show";
|
|
242
|
-
ShowDirective.allowOnNested = true;
|
|
243
|
-
ShowDirective.help = `
|
|
244
|
-
Shows an element by toggling its hidden attribute.
|
|
245
|
-
|
|
246
|
-
/h <div show={}></div>
|
|
247
|
-
`;
|
|
248
185
|
class StyleDirective extends models_1.Directive {
|
|
249
186
|
apply(node, value, qualifier, base) {
|
|
250
187
|
if (qualifier) {
|
|
@@ -268,10 +205,6 @@ class StyleDirective extends models_1.Directive {
|
|
|
268
205
|
StyleDirective.attributeName = "style";
|
|
269
206
|
StyleDirective.allowString = true;
|
|
270
207
|
StyleDirective.allowQualifier = true;
|
|
271
|
-
StyleDirective.help = `
|
|
272
|
-
|
|
273
|
-
/h <div style:color="red"></div>
|
|
274
|
-
`;
|
|
275
208
|
class ToggleDirective extends models_1.Directive {
|
|
276
209
|
apply(node, value, qualifier, _base) {
|
|
277
210
|
if (!qualifier) {
|
|
@@ -282,16 +215,6 @@ class ToggleDirective extends models_1.Directive {
|
|
|
282
215
|
}
|
|
283
216
|
ToggleDirective.attributeName = "toggle";
|
|
284
217
|
ToggleDirective.requireQualifier = true;
|
|
285
|
-
ToggleDirective.help = `
|
|
286
|
-
If used on its own, the qualifer is the name of the css class to toggle:
|
|
287
|
-
|
|
288
|
-
/h <div toggle:danger={expr}></div>
|
|
289
|
-
|
|
290
|
-
If the element has class sets, then the qualifer corresponds to the name of the
|
|
291
|
-
class set:
|
|
292
|
-
|
|
293
|
-
/h <div class:danger="red danger" toggle:danger={expr}></div>
|
|
294
|
-
`;
|
|
295
218
|
class UniqueDirective extends models_1.Directive {
|
|
296
219
|
apply(node, _value, _qualifier, _base) {
|
|
297
220
|
node.component.unique = true;
|
|
@@ -312,11 +235,9 @@ exports.builtinDirectives = [
|
|
|
312
235
|
HideDirective,
|
|
313
236
|
HtmlDirective,
|
|
314
237
|
IfDirective,
|
|
315
|
-
ItemsDirective,
|
|
316
238
|
KeyDirective,
|
|
317
239
|
OnEventDirective,
|
|
318
240
|
PartDirective,
|
|
319
|
-
PoolDirective,
|
|
320
241
|
PropsDirective,
|
|
321
242
|
RefDirective,
|
|
322
243
|
ShowDirective,
|
package/dist/directives.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,kCAAkC;AAClC,qCAAoD;AACpD,qCAAiD;AACjD,qCAAoE;AACpE,2CAKqB;AAErB,MAAM,cAAe,SAAQ,kBAAS;IAKpC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,UAAqB,EAAE,KAAa;QACzE,IAAI,CAAC,QAAQ,CAAC,2BAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;;AANM,4BAAa,GAAG,OAAO,CAAC;AACxB,wBAAS,GAAG,IAAI,CAAC;AACjB,0BAAW,GAAG,KAAK,CAAC;AACpB,+BAAgB,GAAG,IAAI,CAAC;AAMjC,MAAM,aAAc,SAAQ,kBAAS;IAGnC,KAAK,CAAC,IAAa,EAAE,KAAgB,EAAE,SAAoB,EAAE,KAAa;QACxE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;;AAJM,2BAAa,GAAG,MAAM,CAAC;AACvB,4BAAc,GAAG,IAAI,CAAC;AAM/B,MAAM,cAAe,SAAQ,kBAAS;
|
|
1
|
+
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { NodePath } from "@babel/core";
|
|
2
2
|
export declare const ERROR_MESSAGES: {
|
|
3
3
|
BASE_COMPONENT_ALREADY_DEFINED: string;
|
|
4
|
-
BIND_ONLY_ALLOWED_ON_INPUT: string;
|
|
5
4
|
FOUND_JSX_IN_INVALID_LOCATION: string;
|
|
6
5
|
CLASS_METHOD_MUST_BE_PROPERTY_JSX: string;
|
|
7
6
|
CAPITALISED_COMPONENT_NAME: string;
|
|
8
|
-
CANNOT_MAKE_ROOT_ELEMENT_A_STUB: string;
|
|
9
7
|
CANNOT_USE_IF_ON_ROOT_ELEMENT: string;
|
|
10
8
|
CANNOT_USE_DIRECTIVE_ON_NESTED_ELEMENT: (directive: string) => string;
|
|
11
9
|
CANNOT_USE_DIRECTIVE_ON_REPEATED_ELEMENT: (directive: string) => string;
|
|
@@ -15,28 +13,23 @@ export declare const ERROR_MESSAGES: {
|
|
|
15
13
|
DIRECTIVE_MAY_NOT_ACCESS_SCOPE_VAR: (directive: string, name: string) => string;
|
|
16
14
|
EVENT_USED_WITHOUT_BIND: string;
|
|
17
15
|
FLAG_REQUIRED: (flag: string) => string;
|
|
16
|
+
INVALID_TAG_FORMAT: string;
|
|
18
17
|
INVALID_EVENT_NAME: (event: string) => string;
|
|
19
18
|
NESTED_COMPONENT_MUST_BE_CAPTIALIZED: string;
|
|
20
|
-
INCORRECTLY_NESTED_COMPONENT: string;
|
|
21
|
-
ARROW_FUNCTION_NOT_ASSIGNED: string;
|
|
22
19
|
DIRECTIVE_INVALID_TYPE: (directive: string, allowed: string[], actual: string) => string;
|
|
23
20
|
PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: string;
|
|
24
|
-
POOL_EXPRESSION_WITHOUT_REPEAT_KEY: string;
|
|
25
21
|
JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: string;
|
|
26
22
|
UNSUPPORTED_ATTRIBUTE_VALUE: string;
|
|
27
23
|
VISIBILITY_TOGGLE_DISPLAY_ALREADY_DEFINED: string;
|
|
28
24
|
STUB_ALREADY_DEFINED: string;
|
|
29
25
|
NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT: string;
|
|
30
26
|
NESTED_COMPONENT_WITH_CHILDREN: string;
|
|
31
|
-
|
|
27
|
+
NESTED_COMPONENT_WITH_ATTRIBUTES: string;
|
|
32
28
|
REFS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: string;
|
|
33
|
-
SPECIFY_EITHER_VALUE_OR_QUALIFIER: (name: string) => string;
|
|
34
29
|
PARTS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: string;
|
|
35
|
-
|
|
30
|
+
REPEAT_WITHOUT_PROPS: string;
|
|
36
31
|
REPEAT_ONLY_ON_NESTED_CLASS: string;
|
|
37
|
-
REPEAT_NOT_ALLOWED_ON_ROOT: string;
|
|
38
32
|
REPEAT_DIRECTIVE_WITH_SIBLINGS: string;
|
|
39
|
-
REPEAT_DIRECTIVE_WITH_CHILDREN: string;
|
|
40
33
|
TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: string;
|
|
41
34
|
UNSUPPORTED_NAMESPACE: string;
|
|
42
35
|
XARGS_MUST_BE_OBJECT: string;
|
package/dist/errors.js
CHANGED
|
@@ -7,62 +7,59 @@ const constants_1 = require("./constants");
|
|
|
7
7
|
const ALLOWED_XARGS = Object.values(constants_1.XARGS).map(n => `"${n}"`);
|
|
8
8
|
exports.ERROR_MESSAGES = {
|
|
9
9
|
BASE_COMPONENT_ALREADY_DEFINED: "Base component already defined.",
|
|
10
|
-
BIND_ONLY_ALLOWED_ON_INPUT: "The `bind` directive may only be used on `input` tags.",
|
|
11
10
|
FOUND_JSX_IN_INVALID_LOCATION: "Found JSX in invalid location.",
|
|
12
11
|
CLASS_METHOD_MUST_BE_PROPERTY_JSX: "Function returning JSX in a class must be assigned to property 'jsx'",
|
|
13
12
|
CAPITALISED_COMPONENT_NAME: "Component name must be capitalized.",
|
|
14
|
-
|
|
15
|
-
CANNOT_USE_IF_ON_ROOT_ELEMENT: "Cannot use 'if' on root element.",
|
|
13
|
+
CANNOT_USE_IF_ON_ROOT_ELEMENT: "Cannot use `if` directive on root element.",
|
|
16
14
|
CANNOT_USE_DIRECTIVE_ON_NESTED_ELEMENT: (directive) => {
|
|
17
|
-
return `The
|
|
15
|
+
return `The \`${directive}\` directive may not be used on nested elements.`;
|
|
18
16
|
},
|
|
19
17
|
CANNOT_USE_DIRECTIVE_ON_REPEATED_ELEMENT: (directive) => {
|
|
20
|
-
return `The
|
|
18
|
+
return `The \`${directive}\` directive may not be used on repeated elements.`;
|
|
21
19
|
},
|
|
22
20
|
CANNOT_USE_DIRECTIVE_WITHOUT_QUALIFIER: (directive) => {
|
|
23
|
-
return `The
|
|
21
|
+
return `The \`${directive}\` directive must have a qualifier.`;
|
|
24
22
|
},
|
|
25
23
|
CANNOT_USE_DIRECTIVE_WITH_QUALIFIER: (directive) => {
|
|
26
|
-
return `The
|
|
24
|
+
return `The \`${directive}\` directive may not have a qualifier.`;
|
|
27
25
|
},
|
|
28
26
|
DIRECTIVE_ALREADY_DEFINED: (directive) => {
|
|
29
|
-
return `The
|
|
27
|
+
return `The \`${directive}\` directive has already been defined on this node.`;
|
|
30
28
|
},
|
|
31
29
|
DIRECTIVE_MAY_NOT_ACCESS_SCOPE_VAR: (directive, name) => {
|
|
32
|
-
return `The
|
|
30
|
+
return `The \`${directive}\` directive may not access scoped variable \`${name}\`.`;
|
|
33
31
|
},
|
|
34
32
|
EVENT_USED_WITHOUT_BIND: "The `event` directive must be used with the `bind` directive.",
|
|
35
33
|
FLAG_REQUIRED: (flag) => {
|
|
36
|
-
return `Flag
|
|
37
|
-
},
|
|
38
|
-
INVALID_EVENT_NAME: (event) => {
|
|
39
|
-
return `"${event}" is not a valid event. Must be lowercase without "on" prefix. E.g. event:keyup.`;
|
|
34
|
+
return `Flag \`${flag}\` must be set to true in the config for this feature.`;
|
|
40
35
|
},
|
|
36
|
+
INVALID_TAG_FORMAT: `Invalid tag format, must be one of:
|
|
37
|
+
<div ...> // A normal element
|
|
38
|
+
<Foo ...> // A nested component
|
|
39
|
+
<Foo.repeat ...> // A repeated component
|
|
40
|
+
<stub.foo ...> // A nested stub
|
|
41
|
+
<stub.foo.repeat ...> // A repeated stub
|
|
42
|
+
`,
|
|
43
|
+
INVALID_EVENT_NAME: (event) => `\`${event}\` is not a valid event. Must be lowercase without \`on\` prefix. E.g. \`event:keyup\`.`,
|
|
41
44
|
NESTED_COMPONENT_MUST_BE_CAPTIALIZED: "Nested component must be capitalized.",
|
|
42
|
-
INCORRECTLY_NESTED_COMPONENT: "Nest components using <Name.nest /> or <Name.repeat />.",
|
|
43
|
-
ARROW_FUNCTION_NOT_ASSIGNED: "Component function must be assigned to a variable.",
|
|
44
45
|
DIRECTIVE_INVALID_TYPE: (directive, allowed, actual) => {
|
|
45
46
|
return allowed.length
|
|
46
|
-
? `The
|
|
47
|
-
: `The
|
|
47
|
+
? `The \`${directive}\` directive value must be of type ${allowed.join(" or ")}. Found: ${actual}.`
|
|
48
|
+
: `The \`${directive}\` directive value must be of type ${allowed[0]}. Found: ${actual}.`;
|
|
48
49
|
},
|
|
49
50
|
PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: "Literal objects in placeholders not allowed as they will become constants.",
|
|
50
|
-
POOL_EXPRESSION_WITHOUT_REPEAT_KEY: "Directive `pool' requires `key` to be set too.",
|
|
51
51
|
JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: "JSX elements are not allowed in expressions.",
|
|
52
52
|
UNSUPPORTED_ATTRIBUTE_VALUE: "Attribute value must be a string or expression.",
|
|
53
53
|
VISIBILITY_TOGGLE_DISPLAY_ALREADY_DEFINED: "Can only define one visibility toggle on element.",
|
|
54
54
|
STUB_ALREADY_DEFINED: "Stub already defined on element.",
|
|
55
|
-
NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT: "Nested
|
|
56
|
-
NESTED_COMPONENT_WITH_CHILDREN: "Nested
|
|
57
|
-
|
|
55
|
+
NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT: "Nested components not allowed as root element.",
|
|
56
|
+
NESTED_COMPONENT_WITH_CHILDREN: "Nested components may not have child nodes.",
|
|
57
|
+
NESTED_COMPONENT_WITH_ATTRIBUTES: "Nested components do not allow regular attributes.",
|
|
58
58
|
REFS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: "Refs must be unique within each component.",
|
|
59
|
-
SPECIFY_EITHER_VALUE_OR_QUALIFIER: (name) => `Specify either value: ${name}="xyz" or qualifier: ${name}:xyz`,
|
|
60
59
|
PARTS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: "Parts must be unique within each component.",
|
|
61
|
-
|
|
60
|
+
REPEAT_WITHOUT_PROPS: "Repeated component must specifiy props.",
|
|
62
61
|
REPEAT_ONLY_ON_NESTED_CLASS: "Repeat only allowed on nested component elements.",
|
|
63
|
-
REPEAT_NOT_ALLOWED_ON_ROOT: "Repeated component not allowed on root element.",
|
|
64
62
|
REPEAT_DIRECTIVE_WITH_SIBLINGS: "Repeat may not have sibling elements if `allowRepeaterSiblings` flag is false.",
|
|
65
|
-
REPEAT_DIRECTIVE_WITH_CHILDREN: "Repeat may not have child nodes.",
|
|
66
63
|
TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: "Toggle targets must have toggle triggers.",
|
|
67
64
|
UNSUPPORTED_NAMESPACE: "Unsupported namespace, may only use 'stub'.",
|
|
68
65
|
XARGS_MUST_BE_OBJECT: "Extra args must be a destructured object.",
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import "source-map-support/register.js";
|
|
2
|
-
import type { PluginObj } from "@babel/core";
|
|
3
|
-
import type { Babel } from "./babel-types";
|
|
4
2
|
import * as constants from "./constants";
|
|
5
3
|
import { wallaceConfig } from "./config";
|
|
6
4
|
import { Directive, NodeValue } from "./models";
|
|
7
|
-
|
|
5
|
+
import { wallacePlugin } from "./visitors/main";
|
|
6
|
+
export default wallacePlugin;
|
|
8
7
|
/**
|
|
9
8
|
* These exports are for custom plugin development.
|
|
10
9
|
*/
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.constants = exports.Directive = exports.wallaceConfig = void 0;
|
|
4
|
-
exports.default = wallacePlugin;
|
|
5
4
|
require("source-map-support/register.js"); // Ensures correct line numbers in stack traces.
|
|
6
5
|
const constants = require("./constants");
|
|
7
6
|
exports.constants = constants;
|
|
@@ -9,43 +8,6 @@ const config_1 = require("./config");
|
|
|
9
8
|
Object.defineProperty(exports, "wallaceConfig", { enumerable: true, get: function () { return config_1.wallaceConfig; } });
|
|
10
9
|
const models_1 = require("./models");
|
|
11
10
|
Object.defineProperty(exports, "Directive", { enumerable: true, get: function () { return models_1.Directive; } });
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
const library_1 = require("./visitors/library");
|
|
15
|
-
// The general pattern involves visting high-level nodes where we instantiate models
|
|
16
|
-
// which are passed to traverse calls with sets of visitors for low-level nodes,
|
|
17
|
-
// which do some of their own transformations and call helper methods to add state.
|
|
18
|
-
// The higher level nodes may then use the helpers with their collected state after
|
|
19
|
-
// the nested traversal.
|
|
20
|
-
//
|
|
21
|
-
// This avoids the use of global state which would be necessary if visitors were
|
|
22
|
-
// all in the same set.
|
|
23
|
-
function wallacePlugin({ types: t }) {
|
|
24
|
-
return {
|
|
25
|
-
visitor: {
|
|
26
|
-
Program: {
|
|
27
|
-
enter(path, pluginPass) {
|
|
28
|
-
config_1.wallaceConfig.applyOptions(pluginPass.opts);
|
|
29
|
-
const module = new module_1.Module(path);
|
|
30
|
-
//@ts-ignore
|
|
31
|
-
const filename = path.hub.file.opts.filename;
|
|
32
|
-
if (filename && filename.includes("/wallace/lib/")) {
|
|
33
|
-
path.traverse(library_1.flagVisitor, { module });
|
|
34
|
-
if (!config_1.wallaceConfig.flags.allowCtrl) {
|
|
35
|
-
path.traverse(library_1.removeCtrl, { module });
|
|
36
|
-
}
|
|
37
|
-
if (!config_1.wallaceConfig.flags.allowParts) {
|
|
38
|
-
path.traverse(library_1.flattenUpdate, { module });
|
|
39
|
-
}
|
|
40
|
-
if (!config_1.wallaceConfig.flags.allowRepeaterSiblings) {
|
|
41
|
-
path.traverse(library_1.removeRepeaterDetacherParams, { module });
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
path.traverse(program_1.programVisitors, { module });
|
|
45
|
-
module.addMissingImports();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
}
|
|
11
|
+
const main_1 = require("./visitors/main");
|
|
12
|
+
exports.default = main_1.wallacePlugin;
|
|
51
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAAwC,CAAC,gDAAgD;AAEzF,yCAAyC;AASK,8BAAS;AARvD,qCAAyC;AAQhC,8FARA,sBAAa,OAQA;AAPtB,qCAAgD;AAOxB,0FAPf,kBAAS,OAOe;AANjC,0CAAgD;AAEhD,kBAAe,oBAAa,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { NodePath } from "@babel/core";
|
|
2
2
|
import type { Identifier, JSXElement, JSXExpressionContainer, JSXText, Expression } from "@babel/types";
|
|
3
|
+
import type { Scope } from "@babel/traverse";
|
|
3
4
|
import { ExtractedNode, TagNode } from "./node";
|
|
4
5
|
import { Module } from "./module";
|
|
5
6
|
export interface WalkTracker {
|
|
@@ -10,6 +11,7 @@ export interface WalkTracker {
|
|
|
10
11
|
export declare class Component {
|
|
11
12
|
#private;
|
|
12
13
|
module: Module;
|
|
14
|
+
scope: Scope;
|
|
13
15
|
baseComponent: Expression | undefined;
|
|
14
16
|
rootElement: HTMLElement;
|
|
15
17
|
extractedNodes: ExtractedNode[];
|
|
@@ -20,10 +22,9 @@ export declare class Component {
|
|
|
20
22
|
};
|
|
21
23
|
htmlExpressions: Expression[];
|
|
22
24
|
unique: boolean;
|
|
23
|
-
constructor(module: Module, propsIdentifier: Identifier, componentIdentifier: Identifier);
|
|
25
|
+
constructor(module: Module, scope: Scope, propsIdentifier: Identifier, componentIdentifier: Identifier);
|
|
24
26
|
processJSXElement(path: NodePath<JSXElement>, tracker: WalkTracker, tagName: string, jsxVisitors: any): void;
|
|
25
|
-
|
|
26
|
-
processStub(path: NodePath<JSXElement>, name: string, tracker: WalkTracker): void;
|
|
27
|
+
processNestedComponentTagNode(path: NodePath<JSXElement>, tracker: WalkTracker, tagName: string, isRepeat: boolean, isStub: boolean): void;
|
|
27
28
|
processJSXText(path: NodePath<JSXText>, tracker: WalkTracker): void;
|
|
28
29
|
processJSXExpressionInText(path: NodePath<JSXExpressionContainer>, tracker: WalkTracker): void;
|
|
29
30
|
buildHTMLString(): Expression;
|
package/dist/models/component.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.Component = void 0;
|
|
10
10
|
const types_1 = require("@babel/types");
|
|
11
11
|
const constants_1 = require("../constants");
|
|
12
|
-
const errors_1 = require("../errors");
|
|
13
12
|
const ast_helpers_1 = require("../ast-helpers");
|
|
14
13
|
const attribute_1 = require("../visitors/attribute");
|
|
15
14
|
const node_1 = require("./node");
|
|
@@ -29,7 +28,7 @@ at runtime.
|
|
|
29
28
|
</div>
|
|
30
29
|
*/
|
|
31
30
|
class Component {
|
|
32
|
-
constructor(module, propsIdentifier, componentIdentifier) {
|
|
31
|
+
constructor(module, scope, propsIdentifier, componentIdentifier) {
|
|
33
32
|
_Component_instances.add(this);
|
|
34
33
|
_Component_currentNodeAddress.set(this, []);
|
|
35
34
|
this.extractedNodes = [];
|
|
@@ -37,13 +36,18 @@ class Component {
|
|
|
37
36
|
this.htmlExpressions = [];
|
|
38
37
|
this.unique = false;
|
|
39
38
|
this.module = module;
|
|
39
|
+
this.scope = scope;
|
|
40
40
|
this.propsIdentifier = propsIdentifier;
|
|
41
41
|
this.componentIdentifier = componentIdentifier;
|
|
42
42
|
}
|
|
43
43
|
processJSXElement(path, tracker, tagName, jsxVisitors) {
|
|
44
44
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
45
|
-
const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName
|
|
46
|
-
path.traverse(attribute_1.attributeVisitors, {
|
|
45
|
+
const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName);
|
|
46
|
+
path.traverse(attribute_1.attributeVisitors, {
|
|
47
|
+
extractedNode,
|
|
48
|
+
allowAttributes: true,
|
|
49
|
+
component: this
|
|
50
|
+
});
|
|
47
51
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
|
|
48
52
|
path.traverse(jsxVisitors, {
|
|
49
53
|
component: this,
|
|
@@ -51,16 +55,14 @@ class Component {
|
|
|
51
55
|
});
|
|
52
56
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
|
|
53
57
|
}
|
|
54
|
-
|
|
55
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
56
|
-
const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName, !isRepeat, isRepeat);
|
|
57
|
-
path.traverse(attribute_1.attributeVisitors, { extractedNode, component: this });
|
|
58
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
|
|
59
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
|
|
60
|
-
}
|
|
61
|
-
processStub(path, name, tracker) {
|
|
58
|
+
processNestedComponentTagNode(path, tracker, tagName, isRepeat, isStub) {
|
|
62
59
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
63
|
-
const extractedNode = new node_1.
|
|
60
|
+
const extractedNode = new node_1.NestedComponentTagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName, isRepeat, isStub);
|
|
61
|
+
path.traverse(attribute_1.attributeVisitors, {
|
|
62
|
+
extractedNode,
|
|
63
|
+
allowAttributes: false,
|
|
64
|
+
component: this
|
|
65
|
+
});
|
|
64
66
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
|
|
65
67
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
|
|
66
68
|
}
|
|
@@ -108,17 +110,9 @@ _Component_currentNodeAddress = new WeakMap(), _Component_instances = new WeakSe
|
|
|
108
110
|
}, _Component_getCurrentAddress = function _Component_getCurrentAddress() {
|
|
109
111
|
return __classPrivateFieldGet(this, _Component_currentNodeAddress, "f").slice();
|
|
110
112
|
}, _Component_addElement = function _Component_addElement(element, path, tracker) {
|
|
111
|
-
var _a, _b;
|
|
112
|
-
// TODO: clean up this mess. Better way to do it.
|
|
113
|
-
if ((_a = tracker.parent) === null || _a === void 0 ? void 0 : _a.isNestedComponent) {
|
|
114
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_WITH_CHILDREN);
|
|
115
|
-
}
|
|
116
|
-
if ((_b = tracker.parent) === null || _b === void 0 ? void 0 : _b.isRepeatedComponent) {
|
|
117
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.REPEAT_DIRECTIVE_WITH_CHILDREN);
|
|
118
|
-
}
|
|
119
113
|
tracker.initialIndex += 1;
|
|
120
114
|
if (!element) {
|
|
121
|
-
// means it is a repeated node.
|
|
115
|
+
// means it is a nested or repeated node.
|
|
122
116
|
return;
|
|
123
117
|
}
|
|
124
118
|
tracker.childIndex += 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":";;;;;;;;;AAQA,wCAA6C;
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Module } from "./module";
|
|
2
2
|
import { Directive, NodeValue, Qualifier } from "./directive";
|
|
3
3
|
import { Component, WalkTracker } from "./component";
|
|
4
|
-
import { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode,
|
|
5
|
-
export { Component, VisibilityToggle, Directive, NodeValue, ExtractedNode, TagNode, DynamicTextNode, PlainTextNode,
|
|
4
|
+
import { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, VisibilityToggle } from "./node";
|
|
5
|
+
export { Component, VisibilityToggle, Directive, NodeValue, ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, Module, Qualifier, WalkTracker };
|
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAoBhC,uFApBO,eAAM,OAoBP;AAnBR,2CAA8D;AAa5D,0FAbO,qBAAS,OAaP;AAZX,2CAAqD;AAUnD,0FAVO,qBAAS,OAUP;AATX,iCAMgB;AAOd,8FAZA,oBAAa,OAYA;AACb,wFAZA,cAAO,OAYA;AACP,gGAZA,sBAAe,OAYA;AACf,8FAZA,oBAAa,OAYA"}
|