babel-plugin-wallace 0.15.0 → 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/consolidation/processNodes.js +46 -48
- package/dist/consolidation/processNodes.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/directives.js +2 -63
- package/dist/directives.js.map +1 -1
- package/dist/errors.d.ts +2 -6
- package/dist/errors.js +19 -19
- package/dist/errors.js.map +1 -1
- package/dist/models/component.d.ts +1 -2
- package/dist/models/component.js +3 -23
- 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 +14 -18
- package/dist/models/node.js +30 -58
- package/dist/models/node.js.map +1 -1
- package/dist/visitors/attribute.js +2 -45
- package/dist/visitors/attribute.js.map +1 -1
- package/dist/visitors/jsx.js +9 -27
- package/dist/visitors/jsx.js.map +1 -1
- package/package.json +2 -2
package/dist/errors.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
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;
|
|
@@ -14,10 +13,9 @@ export declare const ERROR_MESSAGES: {
|
|
|
14
13
|
DIRECTIVE_MAY_NOT_ACCESS_SCOPE_VAR: (directive: string, name: string) => string;
|
|
15
14
|
EVENT_USED_WITHOUT_BIND: string;
|
|
16
15
|
FLAG_REQUIRED: (flag: string) => string;
|
|
16
|
+
INVALID_TAG_FORMAT: string;
|
|
17
17
|
INVALID_EVENT_NAME: (event: string) => string;
|
|
18
18
|
NESTED_COMPONENT_MUST_BE_CAPTIALIZED: string;
|
|
19
|
-
INCORRECTLY_NESTED_COMPONENT: string;
|
|
20
|
-
ARROW_FUNCTION_NOT_ASSIGNED: string;
|
|
21
19
|
DIRECTIVE_INVALID_TYPE: (directive: string, allowed: string[], actual: string) => string;
|
|
22
20
|
PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: string;
|
|
23
21
|
JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: string;
|
|
@@ -28,12 +26,10 @@ export declare const ERROR_MESSAGES: {
|
|
|
28
26
|
NESTED_COMPONENT_WITH_CHILDREN: string;
|
|
29
27
|
NESTED_COMPONENT_WITH_ATTRIBUTES: string;
|
|
30
28
|
REFS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: string;
|
|
31
|
-
SPECIFY_EITHER_VALUE_OR_QUALIFIER: (name: string) => string;
|
|
32
29
|
PARTS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: string;
|
|
33
|
-
|
|
30
|
+
REPEAT_WITHOUT_PROPS: string;
|
|
34
31
|
REPEAT_ONLY_ON_NESTED_CLASS: string;
|
|
35
32
|
REPEAT_DIRECTIVE_WITH_SIBLINGS: string;
|
|
36
|
-
REPEAT_DIRECTIVE_WITH_CHILDREN: string;
|
|
37
33
|
TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: string;
|
|
38
34
|
UNSUPPORTED_NAMESPACE: string;
|
|
39
35
|
XARGS_MUST_BE_OBJECT: string;
|
package/dist/errors.js
CHANGED
|
@@ -7,43 +7,45 @@ 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
|
-
CANNOT_USE_IF_ON_ROOT_ELEMENT: "Cannot use
|
|
13
|
+
CANNOT_USE_IF_ON_ROOT_ELEMENT: "Cannot use `if` directive on root element.",
|
|
15
14
|
CANNOT_USE_DIRECTIVE_ON_NESTED_ELEMENT: (directive) => {
|
|
16
|
-
return `The
|
|
15
|
+
return `The \`${directive}\` directive may not be used on nested elements.`;
|
|
17
16
|
},
|
|
18
17
|
CANNOT_USE_DIRECTIVE_ON_REPEATED_ELEMENT: (directive) => {
|
|
19
|
-
return `The
|
|
18
|
+
return `The \`${directive}\` directive may not be used on repeated elements.`;
|
|
20
19
|
},
|
|
21
20
|
CANNOT_USE_DIRECTIVE_WITHOUT_QUALIFIER: (directive) => {
|
|
22
|
-
return `The
|
|
21
|
+
return `The \`${directive}\` directive must have a qualifier.`;
|
|
23
22
|
},
|
|
24
23
|
CANNOT_USE_DIRECTIVE_WITH_QUALIFIER: (directive) => {
|
|
25
|
-
return `The
|
|
24
|
+
return `The \`${directive}\` directive may not have a qualifier.`;
|
|
26
25
|
},
|
|
27
26
|
DIRECTIVE_ALREADY_DEFINED: (directive) => {
|
|
28
|
-
return `The
|
|
27
|
+
return `The \`${directive}\` directive has already been defined on this node.`;
|
|
29
28
|
},
|
|
30
29
|
DIRECTIVE_MAY_NOT_ACCESS_SCOPE_VAR: (directive, name) => {
|
|
31
|
-
return `The
|
|
30
|
+
return `The \`${directive}\` directive may not access scoped variable \`${name}\`.`;
|
|
32
31
|
},
|
|
33
32
|
EVENT_USED_WITHOUT_BIND: "The `event` directive must be used with the `bind` directive.",
|
|
34
33
|
FLAG_REQUIRED: (flag) => {
|
|
35
|
-
return `Flag
|
|
36
|
-
},
|
|
37
|
-
INVALID_EVENT_NAME: (event) => {
|
|
38
|
-
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.`;
|
|
39
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\`.`,
|
|
40
44
|
NESTED_COMPONENT_MUST_BE_CAPTIALIZED: "Nested component must be capitalized.",
|
|
41
|
-
INCORRECTLY_NESTED_COMPONENT: "Nest components using <Name.nest /> or <Name.repeat />.",
|
|
42
|
-
ARROW_FUNCTION_NOT_ASSIGNED: "Component function must be assigned to a variable.",
|
|
43
45
|
DIRECTIVE_INVALID_TYPE: (directive, allowed, actual) => {
|
|
44
46
|
return allowed.length
|
|
45
|
-
? `The
|
|
46
|
-
: `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}.`;
|
|
47
49
|
},
|
|
48
50
|
PLACEHOLDER_MAY_NOT_BE_LITERAL_OBJECT: "Literal objects in placeholders not allowed as they will become constants.",
|
|
49
51
|
JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS: "JSX elements are not allowed in expressions.",
|
|
@@ -54,12 +56,10 @@ exports.ERROR_MESSAGES = {
|
|
|
54
56
|
NESTED_COMPONENT_WITH_CHILDREN: "Nested components may not have child nodes.",
|
|
55
57
|
NESTED_COMPONENT_WITH_ATTRIBUTES: "Nested components do not allow regular attributes.",
|
|
56
58
|
REFS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: "Refs must be unique within each component.",
|
|
57
|
-
SPECIFY_EITHER_VALUE_OR_QUALIFIER: (name) => `Specify either value: ${name}="xyz" or qualifier: ${name}:xyz`,
|
|
58
59
|
PARTS_MUST_BE_UNIQUE_WITHIN_EACH_COMPONENT: "Parts must be unique within each component.",
|
|
59
|
-
|
|
60
|
+
REPEAT_WITHOUT_PROPS: "Repeated component must specifiy props.",
|
|
60
61
|
REPEAT_ONLY_ON_NESTED_CLASS: "Repeat only allowed on nested component elements.",
|
|
61
62
|
REPEAT_DIRECTIVE_WITH_SIBLINGS: "Repeat may not have sibling elements if `allowRepeaterSiblings` flag is false.",
|
|
62
|
-
REPEAT_DIRECTIVE_WITH_CHILDREN: "Repeat may not have child nodes.",
|
|
63
63
|
TOGGLE_TARGETS_WITHOUT_TOGGLE_TRIGGERS: "Toggle targets must have toggle triggers.",
|
|
64
64
|
UNSUPPORTED_NAMESPACE: "Unsupported namespace, may only use 'stub'.",
|
|
65
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":";;;AA0EA,sBAEC;AAED,wBAIC;AAjFD,2CAAoC;AAEpC,MAAM,aAAa,GAAa,MAAM,CAAC,MAAM,CAAC,iBAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3D,QAAA,cAAc,GAAG;IAC5B,8BAA8B,EAAE,iCAAiC;IACjE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,7 @@ export declare class Component {
|
|
|
24
24
|
unique: boolean;
|
|
25
25
|
constructor(module: Module, scope: Scope, propsIdentifier: Identifier, componentIdentifier: Identifier);
|
|
26
26
|
processJSXElement(path: NodePath<JSXElement>, tracker: WalkTracker, tagName: string, jsxVisitors: any): void;
|
|
27
|
-
|
|
28
|
-
processStub(path: NodePath<JSXElement>, name: string, tracker: WalkTracker): void;
|
|
27
|
+
processNestedComponentTagNode(path: NodePath<JSXElement>, tracker: WalkTracker, tagName: string, isRepeat: boolean, isStub: boolean): void;
|
|
29
28
|
processJSXText(path: NodePath<JSXText>, tracker: WalkTracker): void;
|
|
30
29
|
processJSXExpressionInText(path: NodePath<JSXExpressionContainer>, tracker: WalkTracker): void;
|
|
31
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");
|
|
@@ -43,7 +42,7 @@ class Component {
|
|
|
43
42
|
}
|
|
44
43
|
processJSXElement(path, tracker, tagName, jsxVisitors) {
|
|
45
44
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
46
|
-
const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName
|
|
45
|
+
const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName);
|
|
47
46
|
path.traverse(attribute_1.attributeVisitors, {
|
|
48
47
|
extractedNode,
|
|
49
48
|
allowAttributes: true,
|
|
@@ -56,20 +55,9 @@ class Component {
|
|
|
56
55
|
});
|
|
57
56
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
|
|
58
57
|
}
|
|
59
|
-
|
|
58
|
+
processNestedComponentTagNode(path, tracker, tagName, isRepeat, isStub) {
|
|
60
59
|
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
61
|
-
const extractedNode = new node_1.
|
|
62
|
-
path.traverse(attribute_1.attributeVisitors, {
|
|
63
|
-
extractedNode,
|
|
64
|
-
allowAttributes: false,
|
|
65
|
-
component: this
|
|
66
|
-
});
|
|
67
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_addNode).call(this, extractedNode, path, tracker);
|
|
68
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
|
|
69
|
-
}
|
|
70
|
-
processStub(path, name, tracker) {
|
|
71
|
-
__classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
|
|
72
|
-
const extractedNode = new node_1.StubNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, name);
|
|
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);
|
|
73
61
|
path.traverse(attribute_1.attributeVisitors, {
|
|
74
62
|
extractedNode,
|
|
75
63
|
allowAttributes: false,
|
|
@@ -122,14 +110,6 @@ _Component_currentNodeAddress = new WeakMap(), _Component_instances = new WeakSe
|
|
|
122
110
|
}, _Component_getCurrentAddress = function _Component_getCurrentAddress() {
|
|
123
111
|
return __classPrivateFieldGet(this, _Component_currentNodeAddress, "f").slice();
|
|
124
112
|
}, _Component_addElement = function _Component_addElement(element, path, tracker) {
|
|
125
|
-
var _a, _b;
|
|
126
|
-
// TODO: clean up this mess. Better way to do it.
|
|
127
|
-
if ((_a = tracker.parent) === null || _a === void 0 ? void 0 : _a.isNestedComponent) {
|
|
128
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_WITH_CHILDREN);
|
|
129
|
-
}
|
|
130
|
-
if ((_b = tracker.parent) === null || _b === void 0 ? void 0 : _b.isRepeatedComponent) {
|
|
131
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.REPEAT_DIRECTIVE_WITH_CHILDREN);
|
|
132
|
-
}
|
|
133
113
|
tracker.initialIndex += 1;
|
|
134
114
|
if (!element) {
|
|
135
115
|
// means it is a nested or repeated node.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":";;;;;;;;;AAQA,wCAA6C;AAE7C,4CAA6C;AAC7C,
|
|
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"}
|
package/dist/models/node.d.ts
CHANGED
|
@@ -9,11 +9,6 @@ interface Watch {
|
|
|
9
9
|
expression: Expression | SPECIAL_SYMBOLS.noLookup;
|
|
10
10
|
callback: string | Expression;
|
|
11
11
|
}
|
|
12
|
-
export interface RepeatInstruction {
|
|
13
|
-
expression: Expression;
|
|
14
|
-
componentCls: string;
|
|
15
|
-
repeatKey: Expression | string | undefined;
|
|
16
|
-
}
|
|
17
12
|
interface EventListener {
|
|
18
13
|
eventName: string;
|
|
19
14
|
callback: Expression;
|
|
@@ -48,7 +43,7 @@ export declare class ExtractedNode {
|
|
|
48
43
|
detacherStashKey?: number;
|
|
49
44
|
isNestedComponent: boolean;
|
|
50
45
|
isRepeatedComponent: boolean;
|
|
51
|
-
|
|
46
|
+
isStub: boolean;
|
|
52
47
|
repeatKey: Expression | string | undefined;
|
|
53
48
|
address: Array<number>;
|
|
54
49
|
initialIndex: number;
|
|
@@ -90,21 +85,13 @@ export declare class ExtractedNode {
|
|
|
90
85
|
getRef(): string | undefined;
|
|
91
86
|
setPart(name: string): void;
|
|
92
87
|
getPart(): string | undefined;
|
|
93
|
-
setRepeatExpression(expression: Expression): void;
|
|
94
88
|
setRepeatKey(expression: Expression | string): void;
|
|
95
|
-
/**
|
|
96
|
-
* Called on the parent of a repeat.
|
|
97
|
-
*/
|
|
98
|
-
getRepeatInstruction(): RepeatInstruction | undefined;
|
|
99
|
-
setStub(name: string): void;
|
|
100
|
-
getStubName(): string | undefined;
|
|
101
89
|
requiredImport(name: IMPORTABLES): void;
|
|
102
90
|
}
|
|
103
91
|
/**
|
|
104
|
-
* Class for tag nodes:
|
|
92
|
+
* Class for standard tag nodes:
|
|
105
93
|
* <img />
|
|
106
94
|
* <div>...</div>
|
|
107
|
-
* <NestedComponent />
|
|
108
95
|
*/
|
|
109
96
|
export declare class TagNode extends ExtractedNode {
|
|
110
97
|
parent: TagNode;
|
|
@@ -112,14 +99,23 @@ export declare class TagNode extends ExtractedNode {
|
|
|
112
99
|
path: NodePath<JSXElement>;
|
|
113
100
|
attributes: Attribute[];
|
|
114
101
|
constructor(path: NodePath<JSXElement>, address: Array<number>, initialIndex: number, parent: TagNode, component: any, // TODO: fix type circular import.
|
|
115
|
-
tagName: string
|
|
102
|
+
tagName: string);
|
|
116
103
|
addFixedAttribute(name: string, value?: string): void;
|
|
117
104
|
addStaticAttribute(name: string, expression: Expression): void;
|
|
118
105
|
getElement(): HTMLElement | Text;
|
|
119
106
|
}
|
|
120
|
-
|
|
107
|
+
/**
|
|
108
|
+
* Class for nested component tag nodes:
|
|
109
|
+
*
|
|
110
|
+
* <NestedComponent />
|
|
111
|
+
*/
|
|
112
|
+
export declare class NestedComponentTagNode extends TagNode {
|
|
113
|
+
parent: TagNode;
|
|
114
|
+
address: Array<number>;
|
|
115
|
+
path: NodePath<JSXElement>;
|
|
116
|
+
attributes: Attribute[];
|
|
121
117
|
constructor(path: NodePath<JSXElement>, address: Array<number>, initialIndex: number, parent: TagNode, component: any, // TODO: fix type circular import.
|
|
122
|
-
|
|
118
|
+
tagName: string, isRepeat: boolean, isStub: boolean);
|
|
123
119
|
getElement(): HTMLElement | Text;
|
|
124
120
|
}
|
|
125
121
|
export declare class DynamicTextNode extends ExtractedNode {
|
package/dist/models/node.js
CHANGED
|
@@ -10,16 +10,18 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var _ExtractedNode_visibilityToggle, _ExtractedNode_ref, _ExtractedNode_part, _ExtractedNode_props, _ExtractedNode_ctrl;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.PlainTextNode = exports.DynamicTextNode = exports.
|
|
15
|
+
exports.PlainTextNode = exports.DynamicTextNode = exports.NestedComponentTagNode = exports.TagNode = exports.ExtractedNode = void 0;
|
|
16
16
|
const utils_1 = require("../utils");
|
|
17
17
|
const errors_1 = require("../errors");
|
|
18
18
|
const constants_1 = require("../constants");
|
|
19
|
+
const config_1 = require("../config");
|
|
19
20
|
class ExtractedNode {
|
|
20
21
|
constructor(path, address, initialIndex, parent) {
|
|
21
22
|
this.isNestedComponent = false;
|
|
22
23
|
this.isRepeatedComponent = false;
|
|
24
|
+
this.isStub = false;
|
|
23
25
|
this.children = [];
|
|
24
26
|
this.watches = [];
|
|
25
27
|
this.eventListeners = [];
|
|
@@ -37,8 +39,6 @@ class ExtractedNode {
|
|
|
37
39
|
*/
|
|
38
40
|
this.classToggleTriggers = [];
|
|
39
41
|
// Private to prevent being set more thant once by directives.
|
|
40
|
-
_ExtractedNode_repeatExpression.set(this, void 0);
|
|
41
|
-
_ExtractedNode_stubName.set(this, void 0);
|
|
42
42
|
_ExtractedNode_visibilityToggle.set(this, void 0);
|
|
43
43
|
_ExtractedNode_ref.set(this, void 0);
|
|
44
44
|
_ExtractedNode_part.set(this, void 0);
|
|
@@ -90,7 +90,7 @@ class ExtractedNode {
|
|
|
90
90
|
__classPrivateFieldSet(this, _ExtractedNode_ctrl, expression, "f");
|
|
91
91
|
}
|
|
92
92
|
getCtrl() {
|
|
93
|
-
return
|
|
93
|
+
return __classPrivateFieldGet(this, _ExtractedNode_ctrl, "f");
|
|
94
94
|
}
|
|
95
95
|
setProps(expression) {
|
|
96
96
|
if (__classPrivateFieldGet(this, _ExtractedNode_props, "f")) {
|
|
@@ -134,68 +134,27 @@ class ExtractedNode {
|
|
|
134
134
|
getPart() {
|
|
135
135
|
return __classPrivateFieldGet(this, _ExtractedNode_part, "f");
|
|
136
136
|
}
|
|
137
|
-
setRepeatExpression(expression) {
|
|
138
|
-
if (__classPrivateFieldGet(this, _ExtractedNode_repeatExpression, "f")) {
|
|
139
|
-
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.DIRECTIVE_ALREADY_DEFINED("items"));
|
|
140
|
-
}
|
|
141
|
-
this.isRepeatedComponent = true;
|
|
142
|
-
__classPrivateFieldSet(this, _ExtractedNode_repeatExpression, expression, "f");
|
|
143
|
-
// this.parent.repeatNode = this;
|
|
144
|
-
}
|
|
145
137
|
setRepeatKey(expression) {
|
|
146
138
|
this.repeatKey = expression;
|
|
147
139
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Called on the parent of a repeat.
|
|
150
|
-
*/
|
|
151
|
-
getRepeatInstruction() {
|
|
152
|
-
if (this.isRepeatedComponent) {
|
|
153
|
-
return {
|
|
154
|
-
expression: __classPrivateFieldGet(this, _ExtractedNode_repeatExpression, "f"),
|
|
155
|
-
componentCls: this.tagName,
|
|
156
|
-
repeatKey: this.repeatKey
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
setStub(name) {
|
|
161
|
-
if (__classPrivateFieldGet(this, _ExtractedNode_stubName, "f")) {
|
|
162
|
-
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.STUB_ALREADY_DEFINED);
|
|
163
|
-
}
|
|
164
|
-
__classPrivateFieldSet(this, _ExtractedNode_stubName, name, "f");
|
|
165
|
-
}
|
|
166
|
-
getStubName() {
|
|
167
|
-
return __classPrivateFieldGet(this, _ExtractedNode_stubName, "f");
|
|
168
|
-
}
|
|
169
140
|
requiredImport(name) {
|
|
170
141
|
this.requiredImports.add(name);
|
|
171
142
|
}
|
|
172
143
|
}
|
|
173
144
|
exports.ExtractedNode = ExtractedNode;
|
|
174
|
-
|
|
145
|
+
_ExtractedNode_visibilityToggle = new WeakMap(), _ExtractedNode_ref = new WeakMap(), _ExtractedNode_part = new WeakMap(), _ExtractedNode_props = new WeakMap(), _ExtractedNode_ctrl = new WeakMap();
|
|
175
146
|
/**
|
|
176
|
-
* Class for tag nodes:
|
|
147
|
+
* Class for standard tag nodes:
|
|
177
148
|
* <img />
|
|
178
149
|
* <div>...</div>
|
|
179
|
-
* <NestedComponent />
|
|
180
150
|
*/
|
|
181
151
|
class TagNode extends ExtractedNode {
|
|
182
152
|
constructor(path, address, initialIndex, parent, component, // TODO: fix type circular import.
|
|
183
|
-
tagName
|
|
153
|
+
tagName) {
|
|
184
154
|
super(path, address, initialIndex, parent);
|
|
185
155
|
this.attributes = [];
|
|
186
156
|
this.component = component;
|
|
187
157
|
this.tagName = tagName;
|
|
188
|
-
this.isNestedComponent = isNestedComponent;
|
|
189
|
-
this.isRepeatedComponent = isRepeatedComponent;
|
|
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);
|
|
192
|
-
}
|
|
193
|
-
if (this.isRepeatedComponent) {
|
|
194
|
-
this.parent.hasRepeatedChildren = true;
|
|
195
|
-
}
|
|
196
|
-
else if (this.isNestedComponent) {
|
|
197
|
-
this.parent.hasNestedChildren = true;
|
|
198
|
-
}
|
|
199
158
|
}
|
|
200
159
|
addFixedAttribute(name, value) {
|
|
201
160
|
this.attributes.push({ name, value });
|
|
@@ -205,9 +164,6 @@ class TagNode extends ExtractedNode {
|
|
|
205
164
|
this.attributes.push({ name, value: constants_1.HTML_SPLITTER });
|
|
206
165
|
}
|
|
207
166
|
getElement() {
|
|
208
|
-
if (this.isRepeatedComponent || this.isNestedComponent) {
|
|
209
|
-
return undefined;
|
|
210
|
-
}
|
|
211
167
|
const element = (0, utils_1.createElement)(this.tagName);
|
|
212
168
|
this.attributes.forEach(({ name, value }) => {
|
|
213
169
|
element.setAttribute(name, value || "");
|
|
@@ -217,21 +173,37 @@ class TagNode extends ExtractedNode {
|
|
|
217
173
|
}
|
|
218
174
|
}
|
|
219
175
|
exports.TagNode = TagNode;
|
|
220
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Class for nested component tag nodes:
|
|
178
|
+
*
|
|
179
|
+
* <NestedComponent />
|
|
180
|
+
*/
|
|
181
|
+
class NestedComponentTagNode extends TagNode {
|
|
221
182
|
constructor(path, address, initialIndex, parent, component, // TODO: fix type circular import.
|
|
222
|
-
|
|
223
|
-
super(path, address, initialIndex, parent, component,
|
|
183
|
+
tagName, isRepeat, isStub) {
|
|
184
|
+
super(path, address, initialIndex, parent, component, tagName);
|
|
185
|
+
this.attributes = [];
|
|
224
186
|
if (!this.parent) {
|
|
225
187
|
(0, errors_1.error)(this.path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_NOT_ALLOWED_ON_ROOT);
|
|
226
188
|
}
|
|
227
|
-
|
|
228
|
-
|
|
189
|
+
if (isStub) {
|
|
190
|
+
this.isStub = true;
|
|
191
|
+
config_1.wallaceConfig.ensureFlagIstrue(path, config_1.FlagValue.allowStubs);
|
|
192
|
+
}
|
|
193
|
+
if (isRepeat) {
|
|
194
|
+
this.isRepeatedComponent = true;
|
|
195
|
+
this.parent.hasRepeatedChildren = true;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
this.isNestedComponent = true;
|
|
199
|
+
this.parent.hasNestedChildren = true;
|
|
200
|
+
}
|
|
229
201
|
}
|
|
230
202
|
getElement() {
|
|
231
203
|
return undefined;
|
|
232
204
|
}
|
|
233
205
|
}
|
|
234
|
-
exports.
|
|
206
|
+
exports.NestedComponentTagNode = NestedComponentTagNode;
|
|
235
207
|
class DynamicTextNode extends ExtractedNode {
|
|
236
208
|
constructor(path, address, initialIndex, parent, expression) {
|
|
237
209
|
super(path, address, initialIndex, parent);
|
package/dist/models/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AASA,oCAA+E;AAC/E,sCAAkD;AAClD,4CAKsB;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.attributeVisitors = void 0;
|
|
4
|
-
const t = require("@babel/types");
|
|
5
4
|
const config_1 = require("../config");
|
|
6
5
|
const constants_1 = require("../constants");
|
|
7
6
|
const errors_1 = require("../errors");
|
|
8
7
|
const ast_helpers_1 = require("../ast-helpers");
|
|
9
|
-
/**
|
|
10
|
-
* Name could be:
|
|
11
|
-
* foo
|
|
12
|
-
* foo:bar
|
|
13
|
-
*/
|
|
14
|
-
function extractName(path) {
|
|
15
|
-
const { name } = path.node;
|
|
16
|
-
let base, qualifier;
|
|
17
|
-
if (t.isJSXNamespacedName(name)) {
|
|
18
|
-
base = name.namespace.name;
|
|
19
|
-
qualifier = name.name.name;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
base = name.name;
|
|
23
|
-
}
|
|
24
|
-
return { base, qualifier };
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Value could be:
|
|
28
|
-
*
|
|
29
|
-
* foo
|
|
30
|
-
* foo="bar"
|
|
31
|
-
* foo={bar}
|
|
32
|
-
*/
|
|
33
|
-
function extractValue(path) {
|
|
34
|
-
const { value } = path.node;
|
|
35
|
-
if (t.isStringLiteral(value)) {
|
|
36
|
-
return { type: "string", value: value.value };
|
|
37
|
-
}
|
|
38
|
-
else if (t.isJSXExpressionContainer(value)) {
|
|
39
|
-
const expression = (0, ast_helpers_1.getPlaceholderExpression)(path, value.expression);
|
|
40
|
-
if (expression) {
|
|
41
|
-
return { type: "expression", expression: expression, path };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else if (value === null) {
|
|
45
|
-
return { type: "null" };
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.JSX_ELEMENTS_NOT_ALLOWED_IN_EXPRESSIONS);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
8
|
exports.attributeVisitors = {
|
|
52
9
|
JSXAttribute(path, { extractedNode, component, allowAttributes }) {
|
|
53
10
|
if (extractedNode.path.node !== path.parentPath.parentPath.node) {
|
|
54
11
|
// We exit here as otherwise we'd traverse attributes of nested JSXElements too.
|
|
55
12
|
return;
|
|
56
13
|
}
|
|
57
|
-
const { base, qualifier } =
|
|
58
|
-
const extractedValue =
|
|
14
|
+
const { base, qualifier } = (0, ast_helpers_1.extractAttributeName)(path);
|
|
15
|
+
const extractedValue = (0, ast_helpers_1.extractAttributeValue)(path);
|
|
59
16
|
if (!extractedValue) {
|
|
60
17
|
return;
|
|
61
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/visitors/attribute.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"attribute.js","sourceRoot":"","sources":["../../src/visitors/attribute.ts"],"names":[],"mappings":";;;AAEA,sCAA0C;AAC1C,4CAAkD;AAElD,sCAAkD;AAClD,gDAA6E;AAQhE,QAAA,iBAAiB,GAAG;IAC/B,YAAY,CACV,IAA4B,EAC5B,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAS;QAEpD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChE,gFAAgF;YAChF,OAAO;QACT,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAA,kCAAoB,EAAC,IAAI,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG,IAAA,mCAAqB,EAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,8BAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,cAAc;YACnC,CAAC,CAAC,sBAAa,CAAC,UAAU,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,sBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,IAAA,cAAK,EAAC,IAAI,EAAE,uBAAc,CAAC,gCAAgC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC5B,KAAK,YAAY;oBACf,aAAa,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;oBACjE,MAAM;gBACR,KAAK,QAAQ;oBACX,aAAa,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;oBAC/D,MAAM;gBACR,KAAK,MAAM;oBACT,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBACzC,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;CACF,CAAC"}
|
package/dist/visitors/jsx.js
CHANGED
|
@@ -2,39 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.jsxVisitors = void 0;
|
|
4
4
|
const ast_helpers_1 = require("../ast-helpers");
|
|
5
|
-
const config_1 = require("../config");
|
|
6
5
|
const errors_1 = require("../errors");
|
|
7
|
-
const utils_1 = require("../utils");
|
|
8
6
|
// Calls itself recursively, using trackers to identify where we are.
|
|
9
7
|
// Must delete visited nodes to avoid reprocessing them with recursion.
|
|
10
8
|
exports.jsxVisitors = {
|
|
11
9
|
JSXElement(path, { component, tracker = { childIndex: 0, initialIndex: 0, parent: undefined } }) {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
component.processJSXElement(path, tracker, tagName, exports.jsxVisitors);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const { namespace, name } = tagName;
|
|
21
|
-
if (name === "nest" || name === "repeat") {
|
|
22
|
-
const componentCls = namespace;
|
|
23
|
-
if (!(0, utils_1.isCapitalized)(componentCls)) {
|
|
24
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.NESTED_COMPONENT_MUST_BE_CAPTIALIZED);
|
|
25
|
-
}
|
|
26
|
-
component.processNestedOrRepeatedElement(path, tracker, componentCls, name === "repeat");
|
|
10
|
+
const tagData = (0, ast_helpers_1.getJSXElementData)(path);
|
|
11
|
+
switch (tagData.type) {
|
|
12
|
+
case "stub":
|
|
13
|
+
case "nested":
|
|
27
14
|
path.traverse(errorIfJSXelementsFoundUnderNested);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
component.processStub(path, name, tracker);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
(0, errors_1.error)(path, errors_1.ERROR_MESSAGES.UNSUPPORTED_NAMESPACE);
|
|
37
|
-
}
|
|
15
|
+
component.processNestedComponentTagNode(path, tracker, tagData.name, tagData.repeat, tagData.type === "stub");
|
|
16
|
+
break;
|
|
17
|
+
case "normal":
|
|
18
|
+
component.processJSXElement(path, tracker, tagData.name, exports.jsxVisitors);
|
|
19
|
+
break;
|
|
38
20
|
}
|
|
39
21
|
path.remove();
|
|
40
22
|
},
|