@coolon/i18n-resource-generator 3.2.3 → 3.3.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.
Files changed (190) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build/main/lib/arg.js +28 -0
  3. package/build/{module/lib/arguments.class.d.ts → main/lib/arguments.d.ts} +1 -1
  4. package/build/main/lib/arguments.js +66 -0
  5. package/build/main/lib/ast/abstractContainerElement.d.ts +2 -2
  6. package/build/main/lib/ast/abstractElement.d.ts +2 -2
  7. package/build/main/lib/ast/{classDef.class.d.ts → classDef.d.ts} +2 -2
  8. package/build/main/lib/ast/classDef.js +26 -0
  9. package/build/main/lib/ast/{containerElement.class.d.ts → containerElement.d.ts} +7 -7
  10. package/build/main/lib/ast/containerElement.js +3 -0
  11. package/build/{module/lib/ast/element.class.d.ts → main/lib/ast/element.d.ts} +1 -1
  12. package/build/main/lib/ast/element.js +3 -0
  13. package/build/{module/lib/ast/functionDef.class.d.ts → main/lib/ast/functionDef.d.ts} +2 -2
  14. package/build/main/lib/ast/functionDef.js +17 -0
  15. package/build/main/lib/ast/{interfaceDef.class.d.ts → interfaceDef.d.ts} +2 -2
  16. package/build/main/lib/ast/interfaceDef.js +28 -0
  17. package/build/{module/lib/ast/jsonModule.class.d.ts → main/lib/ast/jsonModule.d.ts} +2 -2
  18. package/build/main/lib/ast/jsonModule.js +22 -0
  19. package/build/{module/lib/ast/moduleDef.class.d.ts → main/lib/ast/moduleDef.d.ts} +2 -2
  20. package/build/main/lib/ast/moduleDef.js +43 -0
  21. package/build/main/lib/ast/{namespaceDef.class.d.ts → namespaceDef.d.ts} +7 -7
  22. package/build/main/lib/ast/namespaceDef.js +71 -0
  23. package/build/main/lib/ast/{objectDef.class.d.ts → objectDef.d.ts} +7 -7
  24. package/build/main/lib/ast/objectDef.js +86 -0
  25. package/build/{module/lib/ast/statementDef.class.d.ts → main/lib/ast/statementDef.d.ts} +1 -1
  26. package/build/main/lib/ast/statementDef.js +15 -0
  27. package/build/main/lib/ast/{tempContainer.class.d.ts → tempContainer.d.ts} +1 -1
  28. package/build/main/lib/ast/tempContainer.js +13 -0
  29. package/build/main/lib/ast/{typeDef.class.d.ts → typeDef.d.ts} +1 -1
  30. package/build/main/lib/ast/{typeDef.class.js → typeDef.js} +1 -1
  31. package/build/main/lib/booleanNode.d.ts +13 -0
  32. package/build/main/lib/booleanNode.js +55 -0
  33. package/build/main/lib/constructor.js +3 -0
  34. package/build/main/lib/customTextArrayNode.d.ts +2 -2
  35. package/build/main/lib/customTextArrayNode.js +6 -6
  36. package/build/main/lib/customTextNode.d.ts +2 -2
  37. package/build/main/lib/customTextNode.js +6 -6
  38. package/build/main/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  39. package/build/main/lib/customTypeArrayNode.js +23 -0
  40. package/build/main/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  41. package/build/main/lib/customTypeNode.js +50 -0
  42. package/build/main/lib/emptyTextNode.d.ts +10 -0
  43. package/build/main/lib/emptyTextNode.js +46 -0
  44. package/build/main/lib/enumEntryNode.d.ts +5 -3
  45. package/build/main/lib/enumEntryNode.js +28 -8
  46. package/build/main/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  47. package/build/main/lib/enumNode.js +124 -0
  48. package/build/main/lib/i18nGenerator.d.ts +1 -1
  49. package/build/main/lib/i18nGenerator.js +16 -16
  50. package/build/main/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +5 -5
  51. package/build/main/lib/i18nNode.js +188 -0
  52. package/build/main/lib/index.d.ts +30 -26
  53. package/build/main/lib/index.js +31 -29
  54. package/build/main/lib/leafNode.d.ts +4 -0
  55. package/build/main/lib/leafNode.js +8 -0
  56. package/build/{module/lib/namespaceNode.class.d.ts → main/lib/namespaceNode.d.ts} +2 -2
  57. package/build/main/lib/namespaceNode.js +17 -0
  58. package/build/main/lib/nullNode.d.ts +10 -0
  59. package/build/main/lib/nullNode.js +43 -0
  60. package/build/main/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  61. package/build/main/lib/rootNode..js +89 -0
  62. package/build/main/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  63. package/build/main/lib/{textArrayNode.class.js → textArrayNode.js} +5 -5
  64. package/build/main/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  65. package/build/main/lib/textNode.js +158 -0
  66. package/build/main/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  67. package/build/main/lib/valueNode.js +60 -0
  68. package/build/main/lib/writer.js +30 -0
  69. package/build/module/lib/arg.js +24 -0
  70. package/build/{main/lib/arguments.class.d.ts → module/lib/arguments.d.ts} +1 -1
  71. package/build/module/lib/arguments.js +62 -0
  72. package/build/module/lib/ast/abstractContainerElement.d.ts +2 -2
  73. package/build/module/lib/ast/abstractElement.d.ts +2 -2
  74. package/build/module/lib/ast/{classDef.class.d.ts → classDef.d.ts} +2 -2
  75. package/build/module/lib/ast/classDef.js +22 -0
  76. package/build/module/lib/ast/{containerElement.class.d.ts → containerElement.d.ts} +7 -7
  77. package/build/module/lib/ast/containerElement.js +2 -0
  78. package/build/{main/lib/ast/element.class.d.ts → module/lib/ast/element.d.ts} +1 -1
  79. package/build/module/lib/ast/element.js +2 -0
  80. package/build/{main/lib/ast/functionDef.class.d.ts → module/lib/ast/functionDef.d.ts} +2 -2
  81. package/build/module/lib/ast/functionDef.js +13 -0
  82. package/build/module/lib/ast/{interfaceDef.class.d.ts → interfaceDef.d.ts} +2 -2
  83. package/build/module/lib/ast/interfaceDef.js +24 -0
  84. package/build/{main/lib/ast/jsonModule.class.d.ts → module/lib/ast/jsonModule.d.ts} +2 -2
  85. package/build/module/lib/ast/jsonModule.js +18 -0
  86. package/build/{main/lib/ast/moduleDef.class.d.ts → module/lib/ast/moduleDef.d.ts} +2 -2
  87. package/build/module/lib/ast/moduleDef.js +39 -0
  88. package/build/module/lib/ast/{namespaceDef.class.d.ts → namespaceDef.d.ts} +7 -7
  89. package/build/module/lib/ast/namespaceDef.js +67 -0
  90. package/build/module/lib/ast/{objectDef.class.d.ts → objectDef.d.ts} +7 -7
  91. package/build/module/lib/ast/objectDef.js +63 -0
  92. package/build/{main/lib/ast/statementDef.class.d.ts → module/lib/ast/statementDef.d.ts} +1 -1
  93. package/build/module/lib/ast/statementDef.js +11 -0
  94. package/build/module/lib/ast/{tempContainer.class.d.ts → tempContainer.d.ts} +1 -1
  95. package/build/module/lib/ast/tempContainer.js +9 -0
  96. package/build/module/lib/ast/{typeDef.class.d.ts → typeDef.d.ts} +1 -1
  97. package/build/module/lib/ast/typeDef.js +11 -0
  98. package/build/module/lib/booleanNode.d.ts +13 -0
  99. package/build/module/lib/booleanNode.js +32 -0
  100. package/build/module/lib/constructor.js +2 -0
  101. package/build/module/lib/customTextArrayNode.d.ts +2 -2
  102. package/build/module/lib/customTextArrayNode.js +3 -3
  103. package/build/module/lib/customTextNode.d.ts +2 -2
  104. package/build/module/lib/customTextNode.js +3 -3
  105. package/build/module/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  106. package/build/module/lib/customTypeArrayNode.js +19 -0
  107. package/build/module/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  108. package/build/module/lib/customTypeNode.js +46 -0
  109. package/build/module/lib/emptyTextNode.d.ts +10 -0
  110. package/build/module/lib/emptyTextNode.js +23 -0
  111. package/build/module/lib/enumEntryNode.d.ts +5 -3
  112. package/build/module/lib/enumEntryNode.js +26 -6
  113. package/build/module/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  114. package/build/module/lib/enumNode.js +101 -0
  115. package/build/module/lib/i18nGenerator.d.ts +1 -1
  116. package/build/module/lib/i18nGenerator.js +11 -11
  117. package/build/module/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +5 -5
  118. package/build/module/lib/i18nNode.js +162 -0
  119. package/build/module/lib/index.d.ts +30 -26
  120. package/build/module/lib/index.js +31 -27
  121. package/build/module/lib/leafNode.d.ts +4 -0
  122. package/build/module/lib/leafNode.js +4 -0
  123. package/build/{main/lib/namespaceNode.class.d.ts → module/lib/namespaceNode.d.ts} +2 -2
  124. package/build/module/lib/namespaceNode.js +13 -0
  125. package/build/module/lib/nullNode.d.ts +10 -0
  126. package/build/module/lib/nullNode.js +20 -0
  127. package/build/module/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  128. package/build/module/lib/rootNode..js +85 -0
  129. package/build/module/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  130. package/build/module/lib/textArrayNode.js +26 -0
  131. package/build/module/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  132. package/build/module/lib/textNode.js +132 -0
  133. package/build/module/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  134. package/build/module/lib/valueNode.js +37 -0
  135. package/build/module/lib/writer.js +26 -0
  136. package/package.json +3 -2
  137. package/build/main/lib/arg.class.js +0 -28
  138. package/build/main/lib/arguments.class.js +0 -66
  139. package/build/main/lib/ast/classDef.class.js +0 -26
  140. package/build/main/lib/ast/containerElement.class.js +0 -3
  141. package/build/main/lib/ast/element.class.js +0 -3
  142. package/build/main/lib/ast/functionDef.class.js +0 -17
  143. package/build/main/lib/ast/interfaceDef.class.js +0 -28
  144. package/build/main/lib/ast/jsonModule.class.js +0 -22
  145. package/build/main/lib/ast/moduleDef.class.js +0 -43
  146. package/build/main/lib/ast/namespaceDef.class.js +0 -71
  147. package/build/main/lib/ast/objectDef.class.js +0 -86
  148. package/build/main/lib/ast/statementDef.class.js +0 -15
  149. package/build/main/lib/ast/tempContainer.class.js +0 -13
  150. package/build/main/lib/constructor.class.js +0 -3
  151. package/build/main/lib/customTypeArrayNode.class.js +0 -23
  152. package/build/main/lib/customTypeNode.class.js +0 -48
  153. package/build/main/lib/enumNode.class.js +0 -117
  154. package/build/main/lib/i18nNode.class.js +0 -188
  155. package/build/main/lib/namespaceNode.class.js +0 -17
  156. package/build/main/lib/rootNode.class.js +0 -89
  157. package/build/main/lib/textNode.class.js +0 -155
  158. package/build/main/lib/valueNode.class.js +0 -60
  159. package/build/main/lib/writer.class.js +0 -30
  160. package/build/module/lib/arg.class.js +0 -24
  161. package/build/module/lib/arguments.class.js +0 -62
  162. package/build/module/lib/ast/classDef.class.js +0 -22
  163. package/build/module/lib/ast/containerElement.class.js +0 -2
  164. package/build/module/lib/ast/element.class.js +0 -2
  165. package/build/module/lib/ast/functionDef.class.js +0 -13
  166. package/build/module/lib/ast/interfaceDef.class.js +0 -24
  167. package/build/module/lib/ast/jsonModule.class.js +0 -18
  168. package/build/module/lib/ast/moduleDef.class.js +0 -39
  169. package/build/module/lib/ast/namespaceDef.class.js +0 -67
  170. package/build/module/lib/ast/objectDef.class.js +0 -63
  171. package/build/module/lib/ast/statementDef.class.js +0 -11
  172. package/build/module/lib/ast/tempContainer.class.js +0 -9
  173. package/build/module/lib/ast/typeDef.class.js +0 -11
  174. package/build/module/lib/constructor.class.js +0 -2
  175. package/build/module/lib/customTypeArrayNode.class.js +0 -19
  176. package/build/module/lib/customTypeNode.class.js +0 -44
  177. package/build/module/lib/enumNode.class.js +0 -94
  178. package/build/module/lib/i18nNode.class.js +0 -162
  179. package/build/module/lib/namespaceNode.class.js +0 -13
  180. package/build/module/lib/rootNode.class.js +0 -85
  181. package/build/module/lib/textArrayNode.class.js +0 -26
  182. package/build/module/lib/textNode.class.js +0 -129
  183. package/build/module/lib/valueNode.class.js +0 -37
  184. package/build/module/lib/writer.class.js +0 -26
  185. /package/build/main/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  186. /package/build/main/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  187. /package/build/main/lib/{writer.class.d.ts → writer.d.ts} +0 -0
  188. /package/build/module/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  189. /package/build/module/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  190. /package/build/module/lib/{writer.class.d.ts → writer.d.ts} +0 -0
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TempContainer = void 0;
4
+ const objectDef_1 = require("./objectDef");
5
+ // Exists to create structures that don't automatically get
6
+ // written out by their parents.
7
+ class TempContainer extends objectDef_1.ObjectDef {
8
+ constructor() {
9
+ super('!!temp!!');
10
+ }
11
+ }
12
+ exports.TempContainer = TempContainer;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcENvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3RlbXBDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLDJEQUEyRDtBQUMzRCxnQ0FBZ0M7QUFDaEMsTUFBYSxhQUFjLFNBQVEscUJBQVM7SUFDeEM7UUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNKO0FBSkQsc0NBSUMifQ==
@@ -1,4 +1,4 @@
1
- import { Writer } from "../writer.class";
1
+ import { Writer } from "../writer";
2
2
  import { AbstractElement } from "./abstractElement";
3
3
  export declare class TypeDef extends AbstractElement {
4
4
  readonly value: string;
@@ -12,4 +12,4 @@ class TypeDef extends abstractElement_1.AbstractElement {
12
12
  }
13
13
  }
14
14
  exports.TypeDef = TypeDef;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZURlZi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3R5cGVEZWYuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBQWtEO0FBRWxELE1BQWEsT0FBUSxTQUFRLGlDQUFlO0lBRXhDLFlBQVksSUFBWSxFQUFrQixLQUFZO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUQwQixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBRXRELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixPQUFPO0lBQ1gsQ0FBQztDQUNKO0FBVEQsMEJBU0MifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZURlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3R5cGVEZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBQWtEO0FBRWxELE1BQWEsT0FBUSxTQUFRLGlDQUFlO0lBRXhDLFlBQVksSUFBWSxFQUFrQixLQUFZO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUQwQixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBRXRELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixPQUFPO0lBQ1gsQ0FBQztDQUNKO0FBVEQsMEJBU0MifQ==
@@ -0,0 +1,13 @@
1
+ import { ContainerElement } from './ast/containerElement';
2
+ import { LeafNode } from './leafNode';
3
+ import { NodeName } from './nodeName';
4
+ export declare class BooleanNode extends LeafNode {
5
+ private data;
6
+ static matches(name: NodeName, yamlData: any): boolean;
7
+ static isValue(thing: any): boolean;
8
+ parse(data: any): void;
9
+ generateApi(out: ContainerElement): void;
10
+ returnType(): string;
11
+ valueType(value: any): string;
12
+ valueString(value: any): string;
13
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.BooleanNode = void 0;
23
+ const _ = __importStar(require("lodash"));
24
+ const arguments_1 = require("./arguments");
25
+ const leafNode_1 = require("./leafNode");
26
+ class BooleanNode extends leafNode_1.LeafNode {
27
+ static matches(name, yamlData) {
28
+ return this.isValue(yamlData); // || (_.isArray(yamlData) && _.reject(yamlData, entry => this.isValue(entry)).length == 0);
29
+ }
30
+ static isValue(thing) {
31
+ return _.isBoolean(thing) || _.isNil(thing);
32
+ }
33
+ // constructor(parent: Node, private name: String, private children: any) {
34
+ // super(parent);
35
+ // }
36
+ parse(data) {
37
+ this.data = data;
38
+ }
39
+ generateApi(out) {
40
+ out.createFunction(this.name.asJsIdentifier, arguments_1.Arguments.empty(), this.returnType(), out => {
41
+ out.println(` return ${this.valueString(this.data)};`);
42
+ });
43
+ }
44
+ returnType() {
45
+ return this.valueType(this.data);
46
+ }
47
+ valueType(value) {
48
+ return _.isNil(value) ? 'boolean' : typeof value;
49
+ }
50
+ valueString(value) {
51
+ return value;
52
+ }
53
+ }
54
+ exports.BooleanNode = BooleanNode;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbk5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Jvb2xlYW5Ob2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBNEI7QUFDNUIsMkNBQXdDO0FBSXhDLHlDQUFzQztBQUd0QyxNQUFhLFdBQVksU0FBUSxtQkFBUTtJQUd2QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBLDRGQUE0RjtJQUM1SCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UscUJBQXFCO0lBQ3JCLElBQUk7SUFFSixLQUFLLENBQUMsSUFBUztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxxQkFBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUN2RixHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBcENELGtDQW9DQyJ9
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnN0cnVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,6 +1,6 @@
1
- import { ContainerElement } from './ast/containerElement.class';
1
+ import { ContainerElement } from './ast/containerElement';
2
2
  import { NodeName } from './nodeName';
3
- import { TextArrayNode } from './textArrayNode.class';
3
+ import { TextArrayNode } from './textArrayNode';
4
4
  export declare class CustomTextArrayNode extends TextArrayNode {
5
5
  static matches(name: NodeName, yamlData: any): boolean;
6
6
  generateApi(container: ContainerElement): void;
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomTextArrayNode = void 0;
4
- const arguments_class_1 = require("./arguments.class");
5
- const textArrayNode_class_1 = require("./textArrayNode.class");
6
- class CustomTextArrayNode extends textArrayNode_class_1.TextArrayNode {
4
+ const arguments_1 = require("./arguments");
5
+ const textArrayNode_1 = require("./textArrayNode");
6
+ class CustomTextArrayNode extends textArrayNode_1.TextArrayNode {
7
7
  static matches(name, yamlData) {
8
- return textArrayNode_class_1.TextArrayNode.matches(name, yamlData);
8
+ return textArrayNode_1.TextArrayNode.matches(name, yamlData);
9
9
  }
10
10
  generateApi(container) {
11
- container.createFunction(this.name.asJsIdentifier, arguments_class_1.Arguments.empty(), 'string[]', out => {
11
+ container.createFunction(this.name.asJsIdentifier, arguments_1.Arguments.empty(), 'string[]', out => {
12
12
  this.createFunctionBody(out);
13
13
  });
14
14
  }
@@ -17,4 +17,4 @@ class CustomTextArrayNode extends textArrayNode_class_1.TextArrayNode {
17
17
  }
18
18
  }
19
19
  exports.CustomTextArrayNode = CustomTextArrayNode;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dEFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVGV4dEFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBOEM7QUFHOUMsK0RBQXNEO0FBRXRELE1BQWEsbUJBQW9CLFNBQVEsbUNBQWE7SUFFcEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLG1DQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsMkJBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQUc7UUFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUVGO0FBaEJELGtEQWdCQyJ9
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dEFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVGV4dEFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBd0M7QUFHeEMsbURBQWdEO0FBRWhELE1BQWEsbUJBQW9CLFNBQVEsNkJBQWE7SUFFcEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLDZCQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUscUJBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQUc7UUFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUVGO0FBaEJELGtEQWdCQyJ9
@@ -1,6 +1,6 @@
1
- import { ContainerElement } from './ast/containerElement.class';
1
+ import { ContainerElement } from './ast/containerElement';
2
2
  import { NodeName } from './nodeName';
3
- import { TextNode } from './textNode.class';
3
+ import { TextNode } from './textNode';
4
4
  export declare class CustomTextNode extends TextNode {
5
5
  static matches(name: NodeName, yamlData: any): boolean;
6
6
  generateApi(container: ContainerElement): void;
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomTextNode = void 0;
4
- const arguments_class_1 = require("./arguments.class");
5
- const textNode_class_1 = require("./textNode.class");
6
- class CustomTextNode extends textNode_class_1.TextNode {
4
+ const arguments_1 = require("./arguments");
5
+ const textNode_1 = require("./textNode");
6
+ class CustomTextNode extends textNode_1.TextNode {
7
7
  static matches(name, yamlData) {
8
- return textNode_class_1.TextNode.matches(name, yamlData);
8
+ return textNode_1.TextNode.matches(name, yamlData);
9
9
  }
10
10
  generateApi(container) {
11
11
  // we get our args from our outer function.
12
- container.createFunction(this.name.asJsIdentifier, arguments_class_1.Arguments.empty(), 'string', out => {
12
+ container.createFunction(this.name.asJsIdentifier, arguments_1.Arguments.empty(), 'string', out => {
13
13
  this.createFunctionBody(out);
14
14
  });
15
15
  }
16
16
  }
17
17
  exports.CustomTextNode = CustomTextNode;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dE5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRleHROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUE4QztBQUc5QyxxREFBNEM7QUFFNUMsTUFBYSxjQUFlLFNBQVEseUJBQVE7SUFFMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLHlCQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLDJDQUEyQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLDJCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVpELHdDQVlDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dE5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRleHROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF3QztBQUd4Qyx5Q0FBc0M7QUFFdEMsTUFBYSxjQUFlLFNBQVEsbUJBQVE7SUFFMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLG1CQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLDJDQUEyQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLHFCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVpELHdDQVlDIn0=
@@ -1,6 +1,6 @@
1
- import { ContainerElement } from './ast/containerElement.class';
2
- import { Constructor } from './constructor.class';
3
- import { I18nNode } from './i18nNode.class';
1
+ import { ContainerElement } from './ast/containerElement';
2
+ import { Constructor } from './constructor';
3
+ import { I18nNode } from './i18nNode';
4
4
  import { NodeName } from './nodeName';
5
5
  export declare class CustomTypeArrayNode extends I18nNode {
6
6
  private customType;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomTypeArrayNode = void 0;
4
+ const customTypeNode_1 = require("./customTypeNode");
5
+ const i18nNode_1 = require("./i18nNode");
6
+ const nodeName_1 = require("./nodeName");
7
+ class CustomTypeArrayNode extends i18nNode_1.I18nNode {
8
+ static matches(name, yamlData) {
9
+ return yamlData && name.customTypeName && name.isArray;
10
+ }
11
+ parseChild(name, data, defaultNodeType) {
12
+ return super.parseChild(nodeName_1.NodeName.parse(`${name.safeName}(${this.name.customTypeName})`), data, customTypeNode_1.CustomTypeNode);
13
+ }
14
+ generateApi(parent) {
15
+ parent.nestedContainer(this.namespaceName, namespace => {
16
+ this.eachChild(child => {
17
+ child.generateApi(namespace);
18
+ });
19
+ });
20
+ }
21
+ }
22
+ exports.CustomTypeArrayNode = CustomTypeArrayNode;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZUFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVHlwZUFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxREFBa0Q7QUFFbEQseUNBQXNDO0FBQ3RDLHlDQUFzQztBQUV0QyxNQUFhLG1CQUFvQixTQUFRLG1CQUFRO0lBSS9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3pELENBQUM7SUFFUyxVQUFVLENBQXFCLElBQWMsRUFBRSxJQUFTLEVBQUUsZUFBK0I7UUFDakcsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLCtCQUFjLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCO1FBQ2xDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUFwQkQsa0RBb0JDIn0=
@@ -1,5 +1,5 @@
1
- import { ContainerElement } from './ast/containerElement.class';
2
- import { I18nNode, NodeConstructor } from './i18nNode.class';
1
+ import { ContainerElement } from './ast/containerElement';
2
+ import { I18nNode, NodeConstructor } from './i18nNode';
3
3
  import { NodeName } from './nodeName';
4
4
  export declare class CustomTypeNode extends I18nNode {
5
5
  static matches(name: NodeName, yamlData: any): boolean;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomTypeNode = void 0;
4
+ const objectDef_1 = require("./ast/objectDef");
5
+ const customTextArrayNode_1 = require("./customTextArrayNode");
6
+ const customTextNode_1 = require("./customTextNode");
7
+ const emptyTextNode_1 = require("./emptyTextNode");
8
+ const i18nNode_1 = require("./i18nNode");
9
+ const nullNode_1 = require("./nullNode");
10
+ const valueNode_1 = require("./valueNode");
11
+ class CustomTypeNode extends i18nNode_1.I18nNode {
12
+ static matches(name, yamlData) {
13
+ return yamlData && name.customTypeName && !name.isArray;
14
+ }
15
+ supportedChildNodeTypes() {
16
+ return [emptyTextNode_1.EmptyTextNode, customTextArrayNode_1.CustomTextArrayNode, customTextNode_1.CustomTextNode, valueNode_1.ValueNode, nullNode_1.NullNode];
17
+ }
18
+ parse(container) {
19
+ super.parse(container);
20
+ this.eachChild(child => this.getArgs().merge(child.getArgs()));
21
+ }
22
+ generateApi(parent) {
23
+ if (this.hasArgs()) {
24
+ const tempContainer = new objectDef_1.ObjectDef('!temp!');
25
+ this.eachChild(child => {
26
+ child.generateApi(tempContainer);
27
+ });
28
+ parent.createFunction(this.name.asJsIdentifier, this.getArgs(), this.name.customTypeName, body => {
29
+ body.println('return {');
30
+ body.indent(out => {
31
+ tempContainer.writeBody(out);
32
+ });
33
+ body.println('}');
34
+ });
35
+ }
36
+ else {
37
+ parent.createObject(this.name.asJsIdentifier, def => {
38
+ def.asType(this.name.customTypeName);
39
+ this.eachChild(child => {
40
+ child.generateApi(def);
41
+ });
42
+ });
43
+ }
44
+ }
45
+ get namespaceName() {
46
+ return super.namespaceName;
47
+ }
48
+ }
49
+ exports.CustomTypeNode = CustomTypeNode;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZU5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVR5cGVOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtDQUE0QztBQUM1QywrREFBNEQ7QUFDNUQscURBQWtEO0FBQ2xELG1EQUFnRDtBQUVoRCx5Q0FBdUQ7QUFFdkQseUNBQXNDO0FBQ3RDLDJDQUF3QztBQUd4QyxNQUFhLGNBQWUsU0FBUSxtQkFBUTtJQUUxQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFELENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxDQUFDLDZCQUFhLEVBQUUseUNBQW1CLEVBQUUsK0JBQWMsRUFBRSxxQkFBUyxFQUFFLG1CQUFRLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQWM7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxxQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDL0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUVILENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBMUNELHdDQTBDQyJ9
@@ -0,0 +1,10 @@
1
+ import { ContainerElement } from './ast/containerElement';
2
+ import { LeafNode } from './leafNode';
3
+ import { NodeName } from './nodeName';
4
+ export declare class EmptyTextNode extends LeafNode {
5
+ private data;
6
+ static matches(name: NodeName, yamlData: any): boolean;
7
+ parse(data: any): void;
8
+ generateApi(out: ContainerElement): void;
9
+ returnType(): string;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.EmptyTextNode = void 0;
23
+ const _ = __importStar(require("lodash"));
24
+ const arguments_1 = require("./arguments");
25
+ const leafNode_1 = require("./leafNode");
26
+ // TODO: this isn't ready for use as it assumes all translations will have empty strings...
27
+ // The typical use case is for when you have a custom types node where you want to leave the value blank.
28
+ // Should probably handle this with a null entry and exclude it from the translation bundle.
29
+ class EmptyTextNode extends leafNode_1.LeafNode {
30
+ static matches(name, yamlData) {
31
+ return _.isString(yamlData) && _.isEmpty(yamlData);
32
+ }
33
+ parse(data) {
34
+ this.data = data;
35
+ }
36
+ generateApi(out) {
37
+ out.createFunction(this.name.asJsIdentifier, arguments_1.Arguments.empty(), this.returnType(), out => {
38
+ out.println(` return "";`);
39
+ });
40
+ }
41
+ returnType() {
42
+ return 'string';
43
+ }
44
+ }
45
+ exports.EmptyTextNode = EmptyTextNode;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHlUZXh0Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW1wdHlUZXh0Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLDJDQUF3QztBQUl4Qyx5Q0FBc0M7QUFHdEMsMkZBQTJGO0FBQzNGLCtHQUErRztBQUMvRyxrR0FBa0c7QUFDbEcsTUFBYSxhQUFjLFNBQVEsbUJBQVE7SUFHekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQXFCO1FBQy9CLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUscUJBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdkYsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBcEJELHNDQW9CQyJ9
@@ -1,10 +1,12 @@
1
- import { ContainerElement } from './ast/containerElement.class';
2
- import { I18nNode, NodeConstructor } from './i18nNode.class';
1
+ import { ArrayMultimap } from '@teppeis/multimaps';
2
+ import { ContainerElement } from './ast/containerElement';
3
+ import { I18nNode, NodeConstructor } from './i18nNode';
3
4
  import { NodeName } from './nodeName';
4
5
  export declare class EnumEntryNode extends I18nNode {
5
6
  static matches(name: NodeName, data: any): boolean;
6
- getPropertiesNames(): string[];
7
7
  supportedChildNodeTypes(): NodeConstructor<any>[];
8
+ getPropertiesNames(): string[];
9
+ getPropertyTypes(): ArrayMultimap<string, string>;
8
10
  parse(container: any): void;
9
11
  generateApi(parent: ContainerElement, typeName?: string): void;
10
12
  }
@@ -1,19 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnumEntryNode = void 0;
4
- const objectDef_class_1 = require("./ast/objectDef.class");
4
+ const multimaps_1 = require("@teppeis/multimaps");
5
+ const objectDef_1 = require("./ast/objectDef");
6
+ const booleanNode_1 = require("./booleanNode");
5
7
  const customTextNode_1 = require("./customTextNode");
6
- const i18nNode_class_1 = require("./i18nNode.class");
7
- const textNode_class_1 = require("./textNode.class");
8
- class EnumEntryNode extends i18nNode_class_1.I18nNode {
8
+ const i18nNode_1 = require("./i18nNode");
9
+ const leafNode_1 = require("./leafNode");
10
+ const nullNode_1 = require("./nullNode");
11
+ const textNode_1 = require("./textNode");
12
+ class EnumEntryNode extends i18nNode_1.I18nNode {
9
13
  static matches(name, data) {
10
14
  return true;
11
15
  }
16
+ supportedChildNodeTypes() {
17
+ return [customTextNode_1.CustomTextNode, textNode_1.TextNode, booleanNode_1.BooleanNode, nullNode_1.NullNode];
18
+ }
12
19
  getPropertiesNames() {
13
20
  return this.children.map(it => it.name.asJsIdentifier);
14
21
  }
15
- supportedChildNodeTypes() {
16
- return [customTextNode_1.CustomTextNode, textNode_class_1.TextNode];
22
+ getPropertyTypes() {
23
+ const result = new multimaps_1.ArrayMultimap();
24
+ this.children.forEach(it => {
25
+ if (it instanceof leafNode_1.LeafNode) {
26
+ let propertyName = it.name.asJsIdentifier;
27
+ let returnType = it.returnType();
28
+ if (!result.get(propertyName).includes(returnType)) {
29
+ result.put(propertyName, returnType);
30
+ }
31
+ }
32
+ else {
33
+ throw new Error(`Enum entries only support leaf nodes, got ${it.constructor.name} at ${(this.parent.fqNamespaceName)}.${this.name}`);
34
+ }
35
+ });
36
+ return result;
17
37
  }
18
38
  parse(container) {
19
39
  super.parse(container);
@@ -21,7 +41,7 @@ class EnumEntryNode extends i18nNode_class_1.I18nNode {
21
41
  }
22
42
  generateApi(parent, typeName) {
23
43
  if (this.hasArgs()) {
24
- const tempContainer = new objectDef_class_1.ObjectDef('!temp!');
44
+ const tempContainer = new objectDef_1.ObjectDef('!temp!');
25
45
  this.eachChild(child => {
26
46
  child.generateApi(tempContainer);
27
47
  });
@@ -44,4 +64,4 @@ class EnumEntryNode extends i18nNode_class_1.I18nNode {
44
64
  }
45
65
  }
46
66
  exports.EnumEntryNode = EnumEntryNode;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bUVudHJ5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bUVudHJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyREFBa0Q7QUFDbEQscURBQWtEO0FBQ2xELHFEQUE2RDtBQUU3RCxxREFBNEM7QUFFNUMsTUFBYSxhQUFjLFNBQVEseUJBQVE7SUFFekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLENBQUMsK0JBQWMsRUFBRSx5QkFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFjO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCLEVBQUUsUUFBaUI7UUFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxhQUFhLEdBQUcsSUFBSSwyQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDM0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQXpDRCxzQ0F5Q0MifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bUVudHJ5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bUVudHJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBbUQ7QUFFbkQsK0NBQTRDO0FBQzVDLCtDQUE0QztBQUM1QyxxREFBa0Q7QUFFbEQseUNBQXVEO0FBQ3ZELHlDQUFzQztBQUV0Qyx5Q0FBc0M7QUFDdEMseUNBQXNDO0FBR3RDLE1BQWEsYUFBYyxTQUFRLG1CQUFRO0lBRXpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sQ0FBQywrQkFBYyxFQUFFLG1CQUFRLEVBQUUseUJBQVcsRUFBRSxtQkFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSx5QkFBYSxFQUFrQixDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3pCLElBQUksRUFBRSxZQUFZLG1CQUFRLEVBQUU7Z0JBQzFCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUMxQyxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDbEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ3RDO2FBQ0Y7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3RJO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQWM7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0IsRUFBRSxRQUFpQjtRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLHFCQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUMzRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNoQixhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDNUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGO0FBekRELHNDQXlEQyJ9
@@ -1,6 +1,6 @@
1
- import { ContainerElement } from './ast/containerElement.class';
2
- import { Constructor } from './constructor.class';
3
- import { I18nNode } from './i18nNode.class';
1
+ import { ContainerElement } from './ast/containerElement';
2
+ import { Constructor } from './constructor';
3
+ import { I18nNode } from './i18nNode';
4
4
  import { NodeName } from './nodeName';
5
5
  export declare class EnumNode extends I18nNode {
6
6
  static matches(name: NodeName, yamlData: any): boolean;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.EnumNode = void 0;
23
+ const multimaps_1 = require("@teppeis/multimaps");
24
+ const _ = __importStar(require("lodash"));
25
+ const lodash_1 = require("lodash");
26
+ const arguments_1 = require("./arguments");
27
+ const objectDef_1 = require("./ast/objectDef");
28
+ const enumEntryNode_1 = require("./enumEntryNode");
29
+ const i18nNode_1 = require("./i18nNode");
30
+ const namespaceNode_1 = require("./namespaceNode");
31
+ class EnumNode extends i18nNode_1.I18nNode {
32
+ static matches(name, yamlData) {
33
+ // console.log(name);
34
+ return yamlData && name.customTypeName === 'Enum';
35
+ }
36
+ parseChild(name, data, defaultNodeType) {
37
+ if (defaultNodeType['name'] === namespaceNode_1.NameSpaceNode['name']) {
38
+ return super.parseChild(name, data, enumEntryNode_1.EnumEntryNode);
39
+ }
40
+ else {
41
+ throw new Error(`entry '${name}' in '${this.accessor}' is not an object. Enum children to be an object.`);
42
+ }
43
+ }
44
+ generateApi(parent) {
45
+ parent.nestedContainer(this.namespaceName, namespace => {
46
+ let properites = undefined;
47
+ // capture return types.
48
+ this.children.forEach(child => {
49
+ const node = child;
50
+ let propertiesNames = node.getPropertiesNames();
51
+ if (!properites) {
52
+ properites = [...propertiesNames];
53
+ }
54
+ else {
55
+ if (!lodash_1.isEqual(lodash_1.sortBy(properites), lodash_1.sortBy(propertiesNames))) {
56
+ throw new Error(`enum properties don't match for ${(namespace.fqNamespaceName)}.${child.name}: expected [${properites.join(',')}], got [${propertiesNames.join(',')}]`);
57
+ }
58
+ }
59
+ });
60
+ const enumType = namespace.defineInterface(`${this.className}Entry`);
61
+ let propertyTypes = new multimaps_1.ArrayMultimap();
62
+ this.children.forEach(child => {
63
+ const node = child;
64
+ propertyTypes.putAll(node.getPropertyTypes());
65
+ });
66
+ propertyTypes.asMap().forEach((values, prop) => {
67
+ enumType.createFunction(prop, arguments_1.Arguments.empty(), _.uniq(values).join(" | "));
68
+ });
69
+ // only process enum entry nodes for now so we guarantee all the children
70
+ // are enum types.
71
+ this.eachChild(child => {
72
+ child.generateApi(namespace, enumType.name);
73
+ });
74
+ // populate our type with the properties of our children.
75
+ const constantEnumDefs = namespace.allOfType(objectDef_1.ObjectDef);
76
+ if (constantEnumDefs.length > 0) {
77
+ const enumKeyType = `${this.fqClassName}Key`;
78
+ namespace.defineType(enumKeyType, this.lookupKeys().join('|'));
79
+ // now create our lookup functions for the enum notes
80
+ namespace.createFunction('lookup', arguments_1.Arguments.createSingle('key', enumKeyType), enumType.name, out => {
81
+ out.println(`const result = tryLookup(key);`);
82
+ out.println(`if (!result) {`);
83
+ out.println(` throw new Error("Unknown enum key '" + key + "'. Must be one of ${this.lookupKeys().join(', ')}")`);
84
+ out.println(`}`);
85
+ out.println(`return result;`);
86
+ });
87
+ namespace.createFunction('tryLookup', arguments_1.Arguments.createSingle('key', 'string'), `${enumType.name} | undefined`, out => {
88
+ this.eachChild(child => {
89
+ if (!child.hasArgs()) {
90
+ out.println(`if ([${child.name.validKeys().map(k => `'${k}'`)}].includes(key)) { return ${this.rootNode().namespace}.${child.accessor}; }`);
91
+ }
92
+ });
93
+ out.println(`return undefined;`);
94
+ });
95
+ namespace.createFunction('nameOf', arguments_1.Arguments.createSingle('option', enumType.name), enumKeyType, out => {
96
+ this.eachChild(child => {
97
+ if (!child.hasArgs()) {
98
+ out.println(`if (option === ${this.rootNode().namespace}.${child.accessor}) { return '${child.name.asJsIdentifier}'; }`);
99
+ }
100
+ });
101
+ out.println(`throw new Error("Unknown enum")`);
102
+ });
103
+ namespace.createFunction('asArray', arguments_1.Arguments.empty(), `${enumType.name}[]`, out => {
104
+ out.println(`return [`);
105
+ this.eachChild(child => {
106
+ if (!child.hasArgs()) {
107
+ out.indent(_out => _out.println(`${this.rootNode().namespace}.${child.accessor},`));
108
+ }
109
+ });
110
+ out.println(']');
111
+ });
112
+ }
113
+ });
114
+ }
115
+ // generateMessageBundle(parent: ContainerElement): void {
116
+ //
117
+ // }
118
+ lookupKeys() {
119
+ let nonVarChildren = this.children.filter(c => !c.hasArgs());
120
+ return _.uniq(nonVarChildren.map(child => `'${child.name.camelisedName}'`).concat(nonVarChildren.map(child => `'${child.name.asJsIdentifier}'`)));
121
+ }
122
+ }
123
+ exports.EnumNode = EnumNode;
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bU5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VudW1Ob2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBbUQ7QUFDbkQsMENBQTRCO0FBQzVCLG1DQUF5QztBQUN6QywyQ0FBd0M7QUFFeEMsK0NBQTRDO0FBRTVDLG1EQUFnRDtBQUNoRCx5Q0FBc0M7QUFDdEMsbURBQWdEO0FBSWhELE1BQWEsUUFBUyxTQUFRLG1CQUFRO0lBRXBDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMscUJBQXFCO1FBQ3JCLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFUyxVQUFVLENBQXFCLElBQWMsRUFBRSxJQUFTLEVBQUUsZUFBK0I7UUFDakcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssNkJBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSw2QkFBYSxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLFNBQVMsSUFBSSxDQUFDLFFBQVEsb0RBQW9ELENBQUMsQ0FBQztTQUMzRztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0I7UUFFbEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBRXJELElBQUksVUFBVSxHQUFhLFNBQVMsQ0FBQztZQUNyQyx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sSUFBSSxHQUFHLEtBQXNCLENBQUM7Z0JBQ3BDLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFB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
@@ -1,4 +1,4 @@
1
- import { I18nNode } from './i18nNode.class';
1
+ import { I18nNode } from './i18nNode';
2
2
  import { NodeName } from './nodeName';
3
3
  export declare class I18nGenerator {
4
4
  private rootNode;