babel-plugin-wallace 0.15.0 → 0.17.1

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.
Files changed (39) hide show
  1. package/dist/ast-helpers.d.ts +35 -4
  2. package/dist/ast-helpers.js +83 -14
  3. package/dist/ast-helpers.js.map +1 -1
  4. package/dist/consolidation/ComponentDefinitionData.d.ts +1 -1
  5. package/dist/consolidation/processNodes.js +46 -48
  6. package/dist/consolidation/processNodes.js.map +1 -1
  7. package/dist/constants.d.ts +4 -2
  8. package/dist/constants.js +2 -0
  9. package/dist/constants.js.map +1 -1
  10. package/dist/contexts/parameters.js +1 -0
  11. package/dist/contexts/parameters.js.map +1 -1
  12. package/dist/directives.d.ts +3 -3
  13. package/dist/directives.js +87 -110
  14. package/dist/directives.js.map +1 -1
  15. package/dist/errors.d.ts +11 -11
  16. package/dist/errors.js +38 -27
  17. package/dist/errors.js.map +1 -1
  18. package/dist/index.d.ts +3 -6
  19. package/dist/index.js +5 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/models/component.d.ts +10 -3
  22. package/dist/models/component.js +6 -23
  23. package/dist/models/component.js.map +1 -1
  24. package/dist/models/directive.d.ts +20 -11
  25. package/dist/models/directive.js +94 -34
  26. package/dist/models/directive.js.map +1 -1
  27. package/dist/models/index.d.ts +4 -5
  28. package/dist/models/index.js +7 -5
  29. package/dist/models/index.js.map +1 -1
  30. package/dist/models/node.d.ts +14 -18
  31. package/dist/models/node.js +30 -58
  32. package/dist/models/node.js.map +1 -1
  33. package/dist/visitors/attribute.js +2 -45
  34. package/dist/visitors/attribute.js.map +1 -1
  35. package/dist/visitors/jsx.js +9 -27
  36. package/dist/visitors/jsx.js.map +1 -1
  37. package/dist/writers/defineComponent.js +47 -1
  38. package/dist/writers/defineComponent.js.map +1 -1
  39. package/package.json +2 -2
@@ -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");
@@ -41,9 +40,12 @@ class Component {
41
40
  this.propsIdentifier = propsIdentifier;
42
41
  this.componentIdentifier = componentIdentifier;
43
42
  }
43
+ needsCustomSetMethod() {
44
+ return this.assignTo || this.watchProps;
45
+ }
44
46
  processJSXElement(path, tracker, tagName, jsxVisitors) {
45
47
  __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, false, false);
48
+ const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName);
47
49
  path.traverse(attribute_1.attributeVisitors, {
48
50
  extractedNode,
49
51
  allowAttributes: true,
@@ -56,20 +58,9 @@ class Component {
56
58
  });
57
59
  __classPrivateFieldGet(this, _Component_instances, "m", _Component_exitLevel).call(this);
58
60
  }
59
- processNestedOrRepeatedElement(path, tracker, tagName, isRepeat) {
60
- __classPrivateFieldGet(this, _Component_instances, "m", _Component_enterLevel).call(this, tracker.childIndex);
61
- const extractedNode = new node_1.TagNode(path, __classPrivateFieldGet(this, _Component_instances, "m", _Component_getCurrentAddress).call(this), tracker.initialIndex, tracker.parent, this, tagName, !isRepeat, isRepeat);
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) {
61
+ processNestedComponentTagNode(path, tracker, tagName, isRepeat, isStub) {
71
62
  __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);
63
+ 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
64
  path.traverse(attribute_1.attributeVisitors, {
74
65
  extractedNode,
75
66
  allowAttributes: false,
@@ -122,14 +113,6 @@ _Component_currentNodeAddress = new WeakMap(), _Component_instances = new WeakSe
122
113
  }, _Component_getCurrentAddress = function _Component_getCurrentAddress() {
123
114
  return __classPrivateFieldGet(this, _Component_currentNodeAddress, "f").slice();
124
115
  }, _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
116
  tracker.initialIndex += 1;
134
117
  if (!element) {
135
118
  // means it is a nested or repeated node.
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/models/component.ts"],"names":[],"mappings":";;;;;;;;;AAQA,wCAAmD;AAEnD,4CAA6C;AAC7C,gDAAuE;AACvE,qDAA0D;AAC1D,iCAMgB;AAShB;;;;;;;;;;;;;;EAcE;AACF,MAAa,SAAS;IAcpB,YACE,MAAc,EACd,KAAY,EACZ,eAA2B,EAC3B,mBAA+B;;QAjBjC,wCAAqC,EAAE,EAAC;QAKxC,mBAAc,GAAoB,EAAE,CAAC;QAGrC,gBAAW,GAA8B,EAAE,CAAC;QAC5C,oBAAe,GAAiB,EAAE,CAAC;QACnC,WAAM,GAAY,KAAK,CAAC;QAStB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAwCD,oBAAoB;QAClB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC;IAC1C,CAAC;IACD,iBAAiB,CACf,IAA0B,EAC1B,OAAoB,EACpB,OAAe,EACf,WAAgB;QAEhB,uBAAA,IAAI,mDAAY,MAAhB,IAAI,EAAa,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,cAAO,CAC/B,IAAI,EACJ,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,CAAqB,EACzB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,MAAM,EACd,IAAI,EACJ,OAAO,CACR,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,6BAAiB,EAAE;YAC/B,aAAa;YACb,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,uBAAA,IAAI,gDAAS,MAAb,IAAI,EAAU,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YACzB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;SACnE,CAAC,CAAC;QACH,uBAAA,IAAI,kDAAW,MAAf,IAAI,CAAa,CAAC;IACpB,CAAC;IACD,6BAA6B,CAC3B,IAA0B,EAC1B,OAAoB,EACpB,OAAe,EACf,QAAiB,EACjB,MAAe;QAEf,uBAAA,IAAI,mDAAY,MAAhB,IAAI,EAAa,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,6BAAsB,CAC9C,IAAI,EACJ,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,CAAqB,EACzB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,MAAM,EACd,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,MAAM,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,6BAAiB,EAAE;YAC/B,aAAa;YACb,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,uBAAA,IAAI,gDAAS,MAAb,IAAI,EAAU,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,uBAAA,IAAI,kDAAW,MAAf,IAAI,CAAa,CAAC;IACpB,CAAC;IACD,cAAc,CAAC,IAAuB,EAAE,OAAoB;QAC1D,mCAAmC;QACnC,uBAAA,IAAI,mDAAY,MAAhB,IAAI,EAAa,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,IAAI,oBAAa,CACrC,IAAI,EACJ,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,CAAqB,EACzB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,MAAM,CACf,CAAC;QACF,uBAAA,IAAI,gDAAS,MAAb,IAAI,EAAU,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,uBAAA,IAAI,kDAAW,MAAf,IAAI,CAAa,CAAC;IACpB,CAAC;IACD,0BAA0B,CACxB,IAAsC,EACtC,OAAoB;QAEpB,uBAAA,IAAI,mDAAY,MAAhB,IAAI,EAAa,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAA,sCAAwB,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,IAAI,sBAAe,CACvC,IAAI,EACJ,uBAAA,IAAI,0DAAmB,MAAvB,IAAI,CAAqB,EACzB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,MAAM,EACd,UAAU,CACX,CAAC;YACF,uBAAA,IAAI,gDAAS,MAAb,IAAI,EAAU,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,uBAAA,IAAI,kDAAW,MAAf,IAAI,CAAa,CAAC;IACpB,CAAC;IACD,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QACvC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;QACjE,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAa,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,WAAW,CAAC,IAAI,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC/C,yBAAyB;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAA,yBAAW,EAAC,WAAW,CAAC,CAAC;IAClC,CAAC;CACF;AAtKD,8BAsKC;4IA7Ia,KAAa;IACvB,qDAAqD;IACrD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,uBAAA,IAAI,qCAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;IAEC,uBAAA,IAAI,qCAAoB,CAAC,GAAG,EAAE,CAAC;AACjC,CAAC;IAEC,OAAO,uBAAA,IAAI,qCAAoB,CAAC,KAAK,EAAE,CAAC;AAC1C,CAAC,yDAEC,OAAuC,EACvC,IAAc,EACd,OAAoB;IAEpB,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yCAAyC;QACzC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IACxB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,uBAAA,IAAI,qCAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EACrC,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;AACH,CAAC,mDACQ,IAAmB,EAAE,IAAc,EAAE,OAAoB;IAChE,uBAAA,IAAI,mDAAY,MAAhB,IAAI,EAAa,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -9,27 +9,36 @@ export interface NodeValue {
9
9
  path?: NodePath;
10
10
  }
11
11
  export type Qualifier = string | undefined;
12
+ export declare enum QualifierMode {
13
+ Required = 0,
14
+ Optional = 1,
15
+ SetsValue = 2,
16
+ NotAllowed = 3
17
+ }
18
+ export declare enum ValueMode {
19
+ StringRequired = 0,
20
+ StringOptional = 1,
21
+ ExpressionRequired = 2,
22
+ ExpressionOptional = 3,
23
+ EitherRequired = 4,
24
+ EitherOptional = 5,
25
+ NotAllowed = 6
26
+ }
12
27
  export declare class Directive {
13
28
  static attributeName: string;
14
29
  static help: string;
15
- static allowExpression: boolean;
16
- static allowNull: boolean;
17
- static allowString: boolean;
18
- static allowQualifier: boolean;
19
- static requireQualifier: boolean;
30
+ static valueMode: ValueMode;
31
+ static qualifierMode: QualifierMode;
20
32
  static allowOnNested: boolean;
21
33
  static allowOnRepeated: boolean;
22
34
  static allowOnNormalElement: boolean;
35
+ static mustBeOnRoot: boolean;
23
36
  static mayAccessComponent: boolean;
24
37
  static mayAccessElement: boolean;
25
38
  static mayAccessEvent: boolean;
26
- static allowedTypes: {
27
- [key: string]: NodeValue["type"];
28
- };
29
39
  apply(node: TagNode, value: NodeValue, qualifier: Qualifier, base: string): void;
30
40
  validate(node: TagNode, value: NodeValue, qualifier: Qualifier, base: string, component: Component): void;
31
- validateType(node: TagNode, value: NodeValue, constructor: typeof Directive): void;
32
- validateNestedAndRepeat(node: TagNode, constructor: typeof Directive): void;
33
- validateQualifier(node: TagNode, qualifier: Qualifier, constructor: typeof Directive): void;
41
+ validateTypeAndQualifier(node: TagNode, value: NodeValue, qualifier: Qualifier, constructor: typeof Directive): void;
42
+ validateLocation(node: TagNode, constructor: typeof Directive): void;
34
43
  validateScopeVariablAccess(node: TagNode, value: NodeValue, constructor: typeof Directive, component: Component): void;
35
44
  }
@@ -1,47 +1,103 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Directive = void 0;
3
+ exports.Directive = exports.ValueMode = exports.QualifierMode = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  const errors_1 = require("../errors");
6
+ var QualifierMode;
7
+ (function (QualifierMode) {
8
+ QualifierMode[QualifierMode["Required"] = 0] = "Required";
9
+ QualifierMode[QualifierMode["Optional"] = 1] = "Optional";
10
+ QualifierMode[QualifierMode["SetsValue"] = 2] = "SetsValue";
11
+ QualifierMode[QualifierMode["NotAllowed"] = 3] = "NotAllowed";
12
+ })(QualifierMode || (exports.QualifierMode = QualifierMode = {}));
13
+ var ValueMode;
14
+ (function (ValueMode) {
15
+ ValueMode[ValueMode["StringRequired"] = 0] = "StringRequired";
16
+ ValueMode[ValueMode["StringOptional"] = 1] = "StringOptional";
17
+ ValueMode[ValueMode["ExpressionRequired"] = 2] = "ExpressionRequired";
18
+ ValueMode[ValueMode["ExpressionOptional"] = 3] = "ExpressionOptional";
19
+ ValueMode[ValueMode["EitherRequired"] = 4] = "EitherRequired";
20
+ ValueMode[ValueMode["EitherOptional"] = 5] = "EitherOptional";
21
+ ValueMode[ValueMode["NotAllowed"] = 6] = "NotAllowed";
22
+ })(ValueMode || (exports.ValueMode = ValueMode = {}));
23
+ const ValidModesForSetsValue = [
24
+ ValueMode.StringRequired,
25
+ ValueMode.StringOptional,
26
+ ValueMode.EitherRequired,
27
+ ValueMode.EitherOptional
28
+ ];
6
29
  class Directive {
7
- apply(node, value, qualifier, base) { }
30
+ apply(node, value, qualifier, base) {
31
+ throw new Error("apply not implemented on directive");
32
+ }
8
33
  validate(node, value, qualifier, base, component) {
9
34
  const constructor = this.constructor;
10
- this.validateType(node, value, constructor);
11
- this.validateNestedAndRepeat(node, constructor);
12
- this.validateQualifier(node, qualifier, constructor);
35
+ this.validateTypeAndQualifier(node, value, qualifier, constructor);
36
+ this.validateLocation(node, constructor);
13
37
  this.validateScopeVariablAccess(node, value, constructor, component);
14
38
  }
15
- validateType(node, value, constructor) {
16
- const { attributeName, allowExpression, allowString, allowNull } = constructor;
17
- const allowedTypes = [
18
- allowExpression && "expression",
19
- allowString && "string",
20
- allowNull && "null"
21
- ].filter(Boolean);
22
- if (!allowedTypes.includes(value.type)) {
23
- (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_INVALID_TYPE(attributeName, allowedTypes, value.type));
39
+ validateTypeAndQualifier(node, value, qualifier, constructor) {
40
+ const { qualifierMode, valueMode } = constructor;
41
+ // Validate special case for SetsValue.
42
+ if (qualifierMode === QualifierMode.SetsValue && qualifier) {
43
+ ensureValidValueModeForSetsValue(valueMode, constructor);
44
+ if (value.expression || value.value) {
45
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_REQUIRES_QUALIFIER_OR_VALUE(constructor.attributeName));
46
+ }
47
+ value.value = qualifier;
24
48
  }
25
- }
26
- validateNestedAndRepeat(node, constructor) {
27
- const { attributeName, allowOnRepeated, allowOnNested } = constructor;
28
- if (!allowOnRepeated && node.isRepeatedComponent) {
29
- (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.CANNOT_USE_DIRECTIVE_ON_REPEATED_ELEMENT(attributeName));
49
+ // Standard qualifer validation.
50
+ if (qualifierMode === QualifierMode.Required && !qualifier) {
51
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_REQUIRES_QUALIFIER(constructor.attributeName));
30
52
  }
31
- if (!allowOnNested && node.isNestedComponent) {
32
- (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.CANNOT_USE_DIRECTIVE_ON_NESTED_ELEMENT(attributeName));
53
+ if (qualifierMode === QualifierMode.NotAllowed && qualifier) {
54
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_DISALLOWS_QUALIFIER(constructor.attributeName));
55
+ }
56
+ if (value.value && value.expression) {
57
+ throw new Error("Internal error: directive got both a value and expression");
58
+ }
59
+ // Validate value
60
+ switch (valueMode) {
61
+ case ValueMode.StringRequired:
62
+ if (!value.value)
63
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_VALUE_REQUIRED("string", constructor.attributeName));
64
+ break;
65
+ case ValueMode.StringOptional:
66
+ if (value.expression)
67
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_VALUE_REQUIRED("string", constructor.attributeName));
68
+ break;
69
+ case ValueMode.ExpressionRequired:
70
+ if (!value.expression)
71
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_VALUE_REQUIRED("expression", constructor.attributeName));
72
+ break;
73
+ case ValueMode.ExpressionOptional:
74
+ if (value.value)
75
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_VALUE_REQUIRED("expression", constructor.attributeName));
76
+ break;
77
+ case ValueMode.EitherRequired:
78
+ if (!(value.expression || value.value))
79
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_EITHER_VALUE_REQUIRED(constructor.attributeName));
80
+ break;
81
+ case ValueMode.EitherOptional:
82
+ // Do nothing
83
+ break;
84
+ case ValueMode.NotAllowed:
85
+ if (value.expression || value.value) {
86
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_NO_VALUE_ALLOWED(constructor.attributeName));
87
+ }
88
+ break;
33
89
  }
34
90
  }
35
- validateQualifier(node, qualifier, constructor) {
36
- let { attributeName, allowQualifier, requireQualifier } = constructor;
37
- if (requireQualifier) {
38
- allowQualifier = true;
91
+ validateLocation(node, constructor) {
92
+ const { attributeName, allowOnRepeated, allowOnNested, mustBeOnRoot } = constructor;
93
+ if (!allowOnRepeated && node.isRepeatedComponent) {
94
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_NOT_ALLOWED_ON_REPEATED_ELEMENT(attributeName));
39
95
  }
40
- if (requireQualifier && !qualifier) {
41
- (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.CANNOT_USE_DIRECTIVE_WITHOUT_QUALIFIER(attributeName));
96
+ if (!allowOnNested && node.isNestedComponent) {
97
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_NOT_ALLOWED_ON_NESTED_ELEMENT(attributeName));
42
98
  }
43
- if (!allowQualifier && qualifier) {
44
- (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.CANNOT_USE_DIRECTIVE_WITH_QUALIFIER(attributeName));
99
+ if (mustBeOnRoot && node.parent) {
100
+ (0, errors_1.error)(node.path, errors_1.ERROR_MESSAGES.DIRECTIVE_MUST_BE_ON_ROOT_ELEMENT(attributeName));
45
101
  }
46
102
  }
47
103
  /*
@@ -104,14 +160,12 @@ class Directive {
104
160
  }
105
161
  }
106
162
  exports.Directive = Directive;
107
- Directive.allowExpression = true;
108
- Directive.allowNull = false;
109
- Directive.allowString = false;
110
- Directive.allowQualifier = false;
111
- Directive.requireQualifier = false;
163
+ Directive.valueMode = ValueMode.ExpressionRequired;
164
+ Directive.qualifierMode = QualifierMode.NotAllowed;
112
165
  Directive.allowOnNested = false;
113
166
  Directive.allowOnRepeated = false;
114
167
  Directive.allowOnNormalElement = true;
168
+ Directive.mustBeOnRoot = false;
115
169
  Directive.mayAccessComponent = true;
116
170
  Directive.mayAccessElement = false;
117
171
  Directive.mayAccessEvent = false;
@@ -135,4 +189,10 @@ function getReferencedScopedVariables(path, component) {
135
189
  });
136
190
  return Array.from(refs);
137
191
  }
192
+ function ensureValidValueModeForSetsValue(valueMode, constructor) {
193
+ if (!ValidModesForSetsValue.includes(valueMode)) {
194
+ throw new Error(`Invalid directive configuration for ${constructor.attributeName}.
195
+ When qualifierMode is 'SetsValue' then valueMode must be one of: ${ValidModesForSetsValue}.`);
196
+ }
197
+ }
138
198
  //# sourceMappingURL=directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/models/directive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/models/directive.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { Module } from "./module";
2
- import { Directive, NodeValue, Qualifier } from "./directive";
3
- import { Component, WalkTracker } from "./component";
4
- import { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, RepeatInstruction, VisibilityToggle } from "./node";
5
- export { Component, VisibilityToggle, Directive, NodeValue, ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, RepeatInstruction, Module, Qualifier, WalkTracker };
1
+ export { Module } from "./module";
2
+ export { Directive, NodeValue, Qualifier, ValueMode, QualifierMode } from "./directive";
3
+ export { Component, WalkTracker } from "./component";
4
+ export { ExtractedNode, TagNode, DynamicTextNode, PlainTextNode, VisibilityToggle } from "./node";
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Module = exports.PlainTextNode = exports.DynamicTextNode = exports.TagNode = exports.ExtractedNode = exports.Directive = exports.Component = void 0;
4
- const module_1 = require("./module");
3
+ exports.PlainTextNode = exports.DynamicTextNode = exports.TagNode = exports.ExtractedNode = exports.Component = exports.QualifierMode = exports.ValueMode = exports.Directive = exports.Module = void 0;
4
+ var module_1 = require("./module");
5
5
  Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return module_1.Module; } });
6
- const directive_1 = require("./directive");
6
+ var directive_1 = require("./directive");
7
7
  Object.defineProperty(exports, "Directive", { enumerable: true, get: function () { return directive_1.Directive; } });
8
- const component_1 = require("./component");
8
+ Object.defineProperty(exports, "ValueMode", { enumerable: true, get: function () { return directive_1.ValueMode; } });
9
+ Object.defineProperty(exports, "QualifierMode", { enumerable: true, get: function () { return directive_1.QualifierMode; } });
10
+ var component_1 = require("./component");
9
11
  Object.defineProperty(exports, "Component", { enumerable: true, get: function () { return component_1.Component; } });
10
- const node_1 = require("./node");
12
+ var node_1 = require("./node");
11
13
  Object.defineProperty(exports, "ExtractedNode", { enumerable: true, get: function () { return node_1.ExtractedNode; } });
12
14
  Object.defineProperty(exports, "TagNode", { enumerable: true, get: function () { return node_1.TagNode; } });
13
15
  Object.defineProperty(exports, "DynamicTextNode", { enumerable: true, get: function () { return node_1.DynamicTextNode; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAsBhC,uFAtBO,eAAM,OAsBP;AArBR,2CAA8D;AAc5D,0FAdO,qBAAS,OAcP;AAbX,2CAAqD;AAWnD,0FAXO,qBAAS,OAWP;AAVX,iCAOgB;AAOd,8FAbA,oBAAa,OAaA;AACb,wFAbA,cAAO,OAaA;AACP,gGAbA,sBAAe,OAaA;AACf,8FAbA,oBAAa,OAaA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,yCAAwF;AAA/E,sGAAA,SAAS,OAAA;AAAwB,sGAAA,SAAS,OAAA;AAAE,0GAAA,aAAa,OAAA;AAClE,yCAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,+BAMgB;AALd,qGAAA,aAAa,OAAA;AACb,+FAAA,OAAO,OAAA;AACP,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA"}
@@ -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
- repeatNode?: ExtractedNode;
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, isNestedComponent: boolean, isRepeatedComponent: boolean);
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
- export declare class StubNode extends TagNode {
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
- name: string);
118
+ tagName: string, isRepeat: boolean, isStub: boolean);
123
119
  getElement(): HTMLElement | Text;
124
120
  }
125
121
  export declare class DynamicTextNode extends ExtractedNode {
@@ -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 _ExtractedNode_repeatExpression, _ExtractedNode_stubName, _ExtractedNode_visibilityToggle, _ExtractedNode_ref, _ExtractedNode_part, _ExtractedNode_props, _ExtractedNode_ctrl;
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.StubNode = exports.TagNode = exports.ExtractedNode = void 0;
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 this.repeatNode ? this.repeatNode.getCtrl() : __classPrivateFieldGet(this, _ExtractedNode_ctrl, "f");
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
- _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();
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, isNestedComponent, isRepeatedComponent) {
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
- class StubNode extends TagNode {
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
- name) {
223
- super(path, address, initialIndex, parent, component, name, false, false);
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
- this.parent.hasNestedChildren = true;
228
- this.setStub(name);
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.StubNode = StubNode;
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);
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/models/node.ts"],"names":[],"mappings":"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"}