@coolon/i18n-resource-generator 3.2.3 → 3.2.4

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 (186) hide show
  1. package/CHANGELOG.md +10 -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/constructor.js +3 -0
  32. package/build/main/lib/customTextArrayNode.d.ts +2 -2
  33. package/build/main/lib/customTextArrayNode.js +6 -6
  34. package/build/main/lib/customTextNode.d.ts +2 -2
  35. package/build/main/lib/customTextNode.js +6 -6
  36. package/build/main/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  37. package/build/main/lib/customTypeArrayNode.js +23 -0
  38. package/build/main/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  39. package/build/main/lib/customTypeNode.js +50 -0
  40. package/build/main/lib/emptyTextNode.d.ts +10 -0
  41. package/build/main/lib/emptyTextNode.js +46 -0
  42. package/build/main/lib/enumEntryNode.d.ts +5 -3
  43. package/build/main/lib/enumEntryNode.js +27 -8
  44. package/build/main/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  45. package/build/main/lib/enumNode.js +124 -0
  46. package/build/main/lib/i18nGenerator.d.ts +1 -1
  47. package/build/main/lib/i18nGenerator.js +16 -16
  48. package/build/main/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +5 -5
  49. package/build/main/lib/i18nNode.js +188 -0
  50. package/build/main/lib/index.d.ts +25 -25
  51. package/build/main/lib/index.js +26 -26
  52. package/build/main/lib/leafNode.d.ts +4 -0
  53. package/build/main/lib/leafNode.js +8 -0
  54. package/build/{module/lib/namespaceNode.class.d.ts → main/lib/namespaceNode.d.ts} +2 -2
  55. package/build/main/lib/namespaceNode.js +17 -0
  56. package/build/main/lib/nullNode.d.ts +10 -0
  57. package/build/main/lib/nullNode.js +43 -0
  58. package/build/main/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  59. package/build/main/lib/rootNode..js +89 -0
  60. package/build/main/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  61. package/build/main/lib/{textArrayNode.class.js → textArrayNode.js} +5 -5
  62. package/build/main/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  63. package/build/main/lib/textNode.js +158 -0
  64. package/build/main/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  65. package/build/main/lib/valueNode.js +60 -0
  66. package/build/main/lib/writer.js +30 -0
  67. package/build/module/lib/arg.js +24 -0
  68. package/build/{main/lib/arguments.class.d.ts → module/lib/arguments.d.ts} +1 -1
  69. package/build/module/lib/arguments.js +62 -0
  70. package/build/module/lib/ast/abstractContainerElement.d.ts +2 -2
  71. package/build/module/lib/ast/abstractElement.d.ts +2 -2
  72. package/build/module/lib/ast/{classDef.class.d.ts → classDef.d.ts} +2 -2
  73. package/build/module/lib/ast/classDef.js +22 -0
  74. package/build/module/lib/ast/{containerElement.class.d.ts → containerElement.d.ts} +7 -7
  75. package/build/module/lib/ast/containerElement.js +2 -0
  76. package/build/{main/lib/ast/element.class.d.ts → module/lib/ast/element.d.ts} +1 -1
  77. package/build/module/lib/ast/element.js +2 -0
  78. package/build/{main/lib/ast/functionDef.class.d.ts → module/lib/ast/functionDef.d.ts} +2 -2
  79. package/build/module/lib/ast/functionDef.js +13 -0
  80. package/build/module/lib/ast/{interfaceDef.class.d.ts → interfaceDef.d.ts} +2 -2
  81. package/build/module/lib/ast/interfaceDef.js +24 -0
  82. package/build/{main/lib/ast/jsonModule.class.d.ts → module/lib/ast/jsonModule.d.ts} +2 -2
  83. package/build/module/lib/ast/jsonModule.js +18 -0
  84. package/build/{main/lib/ast/moduleDef.class.d.ts → module/lib/ast/moduleDef.d.ts} +2 -2
  85. package/build/module/lib/ast/moduleDef.js +39 -0
  86. package/build/module/lib/ast/{namespaceDef.class.d.ts → namespaceDef.d.ts} +7 -7
  87. package/build/module/lib/ast/namespaceDef.js +67 -0
  88. package/build/module/lib/ast/{objectDef.class.d.ts → objectDef.d.ts} +7 -7
  89. package/build/module/lib/ast/objectDef.js +63 -0
  90. package/build/{main/lib/ast/statementDef.class.d.ts → module/lib/ast/statementDef.d.ts} +1 -1
  91. package/build/module/lib/ast/statementDef.js +11 -0
  92. package/build/module/lib/ast/{tempContainer.class.d.ts → tempContainer.d.ts} +1 -1
  93. package/build/module/lib/ast/tempContainer.js +9 -0
  94. package/build/module/lib/ast/{typeDef.class.d.ts → typeDef.d.ts} +1 -1
  95. package/build/module/lib/ast/typeDef.js +11 -0
  96. package/build/module/lib/constructor.js +2 -0
  97. package/build/module/lib/customTextArrayNode.d.ts +2 -2
  98. package/build/module/lib/customTextArrayNode.js +3 -3
  99. package/build/module/lib/customTextNode.d.ts +2 -2
  100. package/build/module/lib/customTextNode.js +3 -3
  101. package/build/module/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  102. package/build/module/lib/customTypeArrayNode.js +19 -0
  103. package/build/module/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  104. package/build/module/lib/customTypeNode.js +46 -0
  105. package/build/module/lib/emptyTextNode.d.ts +10 -0
  106. package/build/module/lib/emptyTextNode.js +23 -0
  107. package/build/module/lib/enumEntryNode.d.ts +5 -3
  108. package/build/module/lib/enumEntryNode.js +25 -6
  109. package/build/module/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  110. package/build/module/lib/enumNode.js +101 -0
  111. package/build/module/lib/i18nGenerator.d.ts +1 -1
  112. package/build/module/lib/i18nGenerator.js +11 -11
  113. package/build/module/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +5 -5
  114. package/build/module/lib/i18nNode.js +162 -0
  115. package/build/module/lib/index.d.ts +25 -25
  116. package/build/module/lib/index.js +26 -26
  117. package/build/module/lib/leafNode.d.ts +4 -0
  118. package/build/module/lib/leafNode.js +4 -0
  119. package/build/{main/lib/namespaceNode.class.d.ts → module/lib/namespaceNode.d.ts} +2 -2
  120. package/build/module/lib/namespaceNode.js +13 -0
  121. package/build/module/lib/nullNode.d.ts +10 -0
  122. package/build/module/lib/nullNode.js +20 -0
  123. package/build/module/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  124. package/build/module/lib/rootNode..js +85 -0
  125. package/build/module/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  126. package/build/module/lib/textArrayNode.js +26 -0
  127. package/build/module/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  128. package/build/module/lib/textNode.js +132 -0
  129. package/build/module/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  130. package/build/module/lib/valueNode.js +37 -0
  131. package/build/module/lib/writer.js +26 -0
  132. package/package.json +3 -2
  133. package/build/main/lib/arg.class.js +0 -28
  134. package/build/main/lib/arguments.class.js +0 -66
  135. package/build/main/lib/ast/classDef.class.js +0 -26
  136. package/build/main/lib/ast/containerElement.class.js +0 -3
  137. package/build/main/lib/ast/element.class.js +0 -3
  138. package/build/main/lib/ast/functionDef.class.js +0 -17
  139. package/build/main/lib/ast/interfaceDef.class.js +0 -28
  140. package/build/main/lib/ast/jsonModule.class.js +0 -22
  141. package/build/main/lib/ast/moduleDef.class.js +0 -43
  142. package/build/main/lib/ast/namespaceDef.class.js +0 -71
  143. package/build/main/lib/ast/objectDef.class.js +0 -86
  144. package/build/main/lib/ast/statementDef.class.js +0 -15
  145. package/build/main/lib/ast/tempContainer.class.js +0 -13
  146. package/build/main/lib/constructor.class.js +0 -3
  147. package/build/main/lib/customTypeArrayNode.class.js +0 -23
  148. package/build/main/lib/customTypeNode.class.js +0 -48
  149. package/build/main/lib/enumNode.class.js +0 -117
  150. package/build/main/lib/i18nNode.class.js +0 -188
  151. package/build/main/lib/namespaceNode.class.js +0 -17
  152. package/build/main/lib/rootNode.class.js +0 -89
  153. package/build/main/lib/textNode.class.js +0 -155
  154. package/build/main/lib/valueNode.class.js +0 -60
  155. package/build/main/lib/writer.class.js +0 -30
  156. package/build/module/lib/arg.class.js +0 -24
  157. package/build/module/lib/arguments.class.js +0 -62
  158. package/build/module/lib/ast/classDef.class.js +0 -22
  159. package/build/module/lib/ast/containerElement.class.js +0 -2
  160. package/build/module/lib/ast/element.class.js +0 -2
  161. package/build/module/lib/ast/functionDef.class.js +0 -13
  162. package/build/module/lib/ast/interfaceDef.class.js +0 -24
  163. package/build/module/lib/ast/jsonModule.class.js +0 -18
  164. package/build/module/lib/ast/moduleDef.class.js +0 -39
  165. package/build/module/lib/ast/namespaceDef.class.js +0 -67
  166. package/build/module/lib/ast/objectDef.class.js +0 -63
  167. package/build/module/lib/ast/statementDef.class.js +0 -11
  168. package/build/module/lib/ast/tempContainer.class.js +0 -9
  169. package/build/module/lib/ast/typeDef.class.js +0 -11
  170. package/build/module/lib/constructor.class.js +0 -2
  171. package/build/module/lib/customTypeArrayNode.class.js +0 -19
  172. package/build/module/lib/customTypeNode.class.js +0 -44
  173. package/build/module/lib/enumNode.class.js +0 -94
  174. package/build/module/lib/i18nNode.class.js +0 -162
  175. package/build/module/lib/namespaceNode.class.js +0 -13
  176. package/build/module/lib/rootNode.class.js +0 -85
  177. package/build/module/lib/textArrayNode.class.js +0 -26
  178. package/build/module/lib/textNode.class.js +0 -129
  179. package/build/module/lib/valueNode.class.js +0 -37
  180. package/build/module/lib/writer.class.js +0 -26
  181. /package/build/main/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  182. /package/build/main/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  183. /package/build/main/lib/{writer.class.d.ts → writer.d.ts} +0 -0
  184. /package/build/module/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  185. /package/build/module/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  186. /package/build/module/lib/{writer.class.d.ts → writer.d.ts} +0 -0
@@ -1,9 +0,0 @@
1
- import { ObjectDef } from "./objectDef.class";
2
- // Exists to create structures that don't automatically get
3
- // written out by their parents.
4
- export class TempContainer extends ObjectDef {
5
- constructor() {
6
- super('!!temp!!');
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcENvbnRhaW5lci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3RlbXBDb250YWluZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLDJEQUEyRDtBQUMzRCxnQ0FBZ0M7QUFDaEMsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBQ3hDO1FBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FDSiJ9
@@ -1,11 +0,0 @@
1
- import { AbstractElement } from "./abstractElement";
2
- export class TypeDef extends AbstractElement {
3
- constructor(name, value) {
4
- super(name);
5
- this.value = value;
6
- }
7
- writeBody(writer) {
8
- // noop
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZURlZi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3R5cGVEZWYuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sT0FBTyxPQUFRLFNBQVEsZUFBZTtJQUV4QyxZQUFZLElBQVksRUFBa0IsS0FBWTtRQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEMEIsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUV0RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsT0FBTztJQUNYLENBQUM7Q0FDSiJ9
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnN0cnVjdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,19 +0,0 @@
1
- import { CustomTypeNode } from './customTypeNode.class';
2
- import { I18nNode } from './i18nNode.class';
3
- import { NodeName } from './nodeName';
4
- export class CustomTypeArrayNode extends I18nNode {
5
- static matches(name, yamlData) {
6
- return yamlData && name.customTypeName && name.isArray;
7
- }
8
- parseChild(name, data, defaultNodeType) {
9
- return super.parseChild(NodeName.parse(`${name.safeName}(${this.name.customTypeName})`), data, CustomTypeNode);
10
- }
11
- generateApi(parent) {
12
- parent.nestedContainer(this.namespaceName, namespace => {
13
- this.eachChild(child => {
14
- child.generateApi(namespace);
15
- });
16
- });
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZUFycmF5Tm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVHlwZUFycmF5Tm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFFBQVE7SUFJL0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDekQsQ0FBQztJQUVTLFVBQVUsQ0FBcUIsSUFBYyxFQUFFLElBQVMsRUFBRSxlQUErQjtRQUNqRyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCO1FBQ2xDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUYifQ==
@@ -1,44 +0,0 @@
1
- import { ObjectDef } from './ast/objectDef.class';
2
- import { CustomTextArrayNode } from './customTextArrayNode';
3
- import { CustomTextNode } from './customTextNode';
4
- import { I18nNode } from './i18nNode.class';
5
- import { ValueNode } from './valueNode.class';
6
- export class CustomTypeNode extends I18nNode {
7
- static matches(name, yamlData) {
8
- return yamlData && name.customTypeName && !name.isArray;
9
- }
10
- supportedChildNodeTypes() {
11
- return [CustomTextArrayNode, CustomTextNode, ValueNode];
12
- }
13
- parse(container) {
14
- super.parse(container);
15
- this.eachChild(child => this.getArgs().merge(child.getArgs()));
16
- }
17
- generateApi(parent) {
18
- if (this.hasArgs()) {
19
- const tempContainer = new ObjectDef('!temp!');
20
- this.eachChild(child => {
21
- child.generateApi(tempContainer);
22
- });
23
- parent.createFunction(this.name.asJsIdentifier, this.getArgs(), this.name.customTypeName, body => {
24
- body.println('return {');
25
- body.indent(out => {
26
- tempContainer.writeBody(out);
27
- });
28
- body.println('}');
29
- });
30
- }
31
- else {
32
- parent.createObject(this.name.asJsIdentifier, def => {
33
- def.asType(this.name.customTypeName);
34
- this.eachChild(child => {
35
- child.generateApi(def);
36
- });
37
- });
38
- }
39
- }
40
- get namespaceName() {
41
- return super.namespaceName;
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVR5cGVOb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBRTFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBYztRQUNsQixLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF3QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2hCLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFFSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQzdCLENBQUM7Q0FDRiJ9
@@ -1,94 +0,0 @@
1
- import * as _ from 'lodash';
2
- import { isEqual, sortBy } from 'lodash';
3
- import { Arguments } from './arguments.class';
4
- import { ObjectDef } from './ast/objectDef.class';
5
- import { EnumEntryNode } from './enumEntryNode';
6
- import { I18nNode } from './i18nNode.class';
7
- import { NameSpaceNode } from './namespaceNode.class';
8
- export class EnumNode extends I18nNode {
9
- static matches(name, yamlData) {
10
- // console.log(name);
11
- return yamlData && name.customTypeName === 'Enum';
12
- }
13
- parseChild(name, data, defaultNodeType) {
14
- if (defaultNodeType['name'] === NameSpaceNode['name']) {
15
- return super.parseChild(name, data, EnumEntryNode);
16
- }
17
- else {
18
- throw new Error(`entry '${name}' in '${this.accessor}' is not an object. Enum children to be an object.`);
19
- }
20
- }
21
- generateApi(parent) {
22
- parent.nestedContainer(this.namespaceName, namespace => {
23
- let properites = undefined;
24
- this.children.forEach(child => {
25
- const node = child;
26
- let propertiesNames = node.getPropertiesNames();
27
- if (!properites) {
28
- properites = [...propertiesNames];
29
- }
30
- else {
31
- if (!isEqual(sortBy(properites), sortBy(propertiesNames))) {
32
- throw new Error(`enum properties don't match for ${(namespace.fqNamespaceName)}.${child.name}: expected [${properites.join(',')}], got [${propertiesNames.join(',')}]`);
33
- }
34
- }
35
- });
36
- const enumType = namespace.defineInterface(`${this.className}Entry`);
37
- properites.forEach(prop => {
38
- enumType.createFunction(prop, Arguments.empty(), 'string');
39
- });
40
- // only process enum entry nodes for now so we guarantee all the children
41
- // are enum types.
42
- this.eachChild(child => {
43
- child.generateApi(namespace, enumType.name);
44
- });
45
- // populate our type with the properties of our children.
46
- const constantEnumDefs = namespace.allOfType(ObjectDef);
47
- if (constantEnumDefs.length > 0) {
48
- const enumKeyType = `${this.fqClassName}Key`;
49
- namespace.defineType(enumKeyType, this.lookupKeys().join('|'));
50
- // now create our lookup functions for the enum notes
51
- namespace.createFunction('lookup', Arguments.createSingle('key', enumKeyType), enumType.name, out => {
52
- out.println(`const result = tryLookup(key);`);
53
- out.println(`if (!result) {`);
54
- out.println(` throw new Error("Unknown enum key '" + key + "'. Must be one of ${this.lookupKeys().join(', ')}")`);
55
- out.println(`}`);
56
- out.println(`return result;`);
57
- });
58
- namespace.createFunction('tryLookup', Arguments.createSingle('key', 'string'), `${enumType.name} | undefined`, out => {
59
- this.eachChild(child => {
60
- if (!child.hasArgs()) {
61
- out.println(`if ([${child.name.validKeys().map(k => `'${k}'`)}].includes(key)) { return ${this.rootNode().namespace}.${child.accessor}; }`);
62
- }
63
- });
64
- out.println(`return undefined;`);
65
- });
66
- namespace.createFunction('nameOf', Arguments.createSingle('option', enumType.name), enumKeyType, out => {
67
- this.eachChild(child => {
68
- if (!child.hasArgs()) {
69
- out.println(`if (option === ${this.rootNode().namespace}.${child.accessor}) { return '${child.name.asJsIdentifier}'; }`);
70
- }
71
- });
72
- out.println(`throw new Error("Unknown enum")`);
73
- });
74
- namespace.createFunction('asArray', Arguments.empty(), `${enumType.name}[]`, out => {
75
- out.println(`return [`);
76
- this.eachChild(child => {
77
- if (!child.hasArgs()) {
78
- out.indent(_out => _out.println(`${this.rootNode().namespace}.${child.accessor},`));
79
- }
80
- });
81
- out.println(']');
82
- });
83
- }
84
- });
85
- }
86
- // generateMessageBundle(parent: ContainerElement): void {
87
- //
88
- // }
89
- lookupKeys() {
90
- let nonVarChildren = this.children.filter(c => !c.hasArgs());
91
- return _.uniq(nonVarChildren.map(child => `'${child.name.camelisedName}'`).concat(nonVarChildren.map(child => `'${child.name.asJsIdentifier}'`)));
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VudW1Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJdEQsTUFBTSxPQUFPLFFBQVMsU0FBUSxRQUFRO0lBRXBDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMscUJBQXFCO1FBQ3JCLE9BQU8sUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFUyxVQUFVLENBQXFCLElBQWMsRUFBRSxJQUFTLEVBQUUsZUFBK0I7UUFDakcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3BEO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxTQUFTLElBQUksQ0FBQyxRQUFRLG9EQUFvRCxDQUFDLENBQUM7U0FDM0c7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCO1FBRWxDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFD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
@@ -1,162 +0,0 @@
1
- import fs from 'fs';
2
- import * as yaml from 'js-yaml';
3
- import * as _ from 'lodash';
4
- import { Arguments } from './arguments.class';
5
- import { NodeName } from './nodeName';
6
- export class I18nNode {
7
- constructor(parent, name) {
8
- this.parent = parent;
9
- this.name = name;
10
- this.childNodes = new Map();
11
- this.templateArgs = new Arguments();
12
- }
13
- get key() {
14
- return this.pathToRoot().slice(1).map(a => a.name.asJsIdentifier).join('.');
15
- }
16
- /**
17
- * Returns the full path to this nodes namespace as used in code. Doesn't include the I18n prefix.
18
- */
19
- get accessor() {
20
- const result = [];
21
- this.pathToRoot().forEach(ancestor => ancestor.appendNamespaceTo(result));
22
- return result.join('.');
23
- }
24
- get fqNamespaceName() {
25
- return `${this.rootNode().namespace}.${this.key}`;
26
- }
27
- appendNamespaceTo(collector) {
28
- collector.push(this.namespaceName);
29
- }
30
- isRoot() {
31
- return !this.parent;
32
- }
33
- pathToRoot() {
34
- return this.isRoot() ? [this] : this.parent.pathToRoot().concat(this);
35
- }
36
- parseFile(fileName) {
37
- // let options = {schema: this.getSchema()};
38
- console.log(`Loading: ${fileName}`);
39
- const yamlData = yaml.safeLoad(fs.readFileSync(fileName, 'utf8'));
40
- try {
41
- this.parse(yamlData);
42
- }
43
- catch (e) {
44
- throw new Error(`Failed to parse file:${fileName}\n-> ${e.message}\n-> ${e.stack}`);
45
- }
46
- }
47
- parse(yamlData) {
48
- this.withEachProperty(yamlData, (name, data) => {
49
- this.parseChild(name, data, this.computeNodeTypeOf(name, data));
50
- });
51
- }
52
- parseChild(name, data, defaultNodeType) {
53
- const child = this.getOrCreatNode(name, defaultNodeType);
54
- if (this.constructor['acceptsChildNodesOfType']) {
55
- const types = this.constructor['acceptsChildNodesOfType']();
56
- if (!_.find(types, type => child instanceof type)) {
57
- throw new Error(`Unsupported child type, must be one of ${types.map(t => t.name).join()}, got ${defaultNodeType.name}.`);
58
- }
59
- }
60
- child.parse(data);
61
- return child;
62
- }
63
- getOrCreatNode(name, type) {
64
- let node = this.childNodes.get(name.asJsIdentifier);
65
- if (node && node.constructor != type) {
66
- throw new Error(`Existing node named ${name} has different type, expected ${type['nodeName']}, got ${node.constructor['nodeName']}`);
67
- }
68
- // console.log(`--> getOrCreateNode(${nodeName}, ${type}) ${node ? 'found' : 'created'}`);
69
- if (!node) {
70
- node = new type(this, name);
71
- this.childNodes.set(name.asJsIdentifier, node);
72
- }
73
- return node;
74
- }
75
- rootNode() {
76
- return this.parent.rootNode();
77
- }
78
- nodeTypes() {
79
- return this.rootNode().nodeTypes();
80
- }
81
- computeNodeTypeOf(name, data) {
82
- const type = _.find(this.supportedChildNodeTypes(), it => it.matches(name, data));
83
- if (!type) {
84
- throw new Error(`No matching node type found for ${this.fqNamespaceName}.${name.rawName}, value = ${data}`);
85
- }
86
- return type;
87
- }
88
- supportedChildNodeTypes() {
89
- return this.rootNode().nodeTypes();
90
- }
91
- withEachProperty(yamlData, cb) {
92
- if (yamlData) {
93
- Object.getOwnPropertyNames(yamlData).forEach(unsafeKey => {
94
- const name = NodeName.parse(unsafeKey);
95
- if (name.isReserved()) {
96
- console.log(`Warning: Yaml key '${unsafeKey}' is a reserved word, converting to '${name.safeName}'`);
97
- }
98
- cb(name, yamlData[unsafeKey]);
99
- });
100
- }
101
- }
102
- get children() {
103
- return Array.from(this.childNodes.values());
104
- }
105
- eachChild(cb) {
106
- Array.from(this.childNodes.values()).forEach(node => cb(node));
107
- }
108
- getArgs() {
109
- return this.templateArgs;
110
- }
111
- hasArgs() {
112
- return this.getArgs().any();
113
- }
114
- get namespaceName() {
115
- return this.name.asJsIdentifier;
116
- }
117
- get className() {
118
- return this.name.asClassName;
119
- }
120
- get fqClassName() {
121
- // the root node has no className and the second one is the language
122
- let parents = this.pathToRoot().slice(2);
123
- return parents.map(n => n.className).join('');
124
- }
125
- createArrayFunctionBody(key, args, out) {
126
- out.println(`const translation = _activeBundle.${key};`);
127
- out.println(`const missing = !isObject(translation);`);
128
- out.println(`if (missing || Object.keys(translation).length < 1) {`);
129
- out.indent(out => {
130
- out.println(`const prefix = missing ? "missing key" : "empty key";`);
131
- out.println(`return [prefix + " " + "${key}"];`);
132
- });
133
- out.println('} else { ');
134
- out.indent(out => {
135
- out.println(`return Object.keys(translation).map(line => {`);
136
- out.indent(out => {
137
- out.println(`// eslint-disable-next-line @typescript-eslint/ban-ts-comment`);
138
- out.println(`// @ts-ignore`);
139
- if (args.any()) {
140
- out.println(`return new MessageFormat(translation[line], _locale).format(${args.asArgsObject()});`);
141
- }
142
- else {
143
- out.println(`return translation[line];`);
144
- }
145
- });
146
- out.println('});');
147
- });
148
- out.println('}');
149
- }
150
- generateApi(parent) {
151
- throw new Error('abstract method');
152
- }
153
- generateMessageBundle(parent, include) {
154
- const me = {};
155
- parent[this.namespaceName] = me;
156
- this.eachChild(child => {
157
- // console.log({child: child.constructor});
158
- return child.generateMessageBundle(me, include);
159
- });
160
- }
161
- }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bk5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2kxOG5Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEtBQUssSUFBSSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUc1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVd0QyxNQUFNLE9BQU8sUUFBUTtJQUtuQixZQUFzQixNQUFnQixFQUFrQixJQUFjO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQVU7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBVTtRQUg5RCxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ2hFLGlCQUFZLEdBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUdsRCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJ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
@@ -1,13 +0,0 @@
1
- import { I18nNode } from './i18nNode.class';
2
- export class NameSpaceNode extends I18nNode {
3
- static matches(name, yamlData) {
4
- // we're fallback so we're greedy, just make sure I'm last in the list of matchers
5
- return true;
6
- }
7
- generateApi(parent) {
8
- parent.nestedContainer(this.namespaceName, namespace => {
9
- this.eachChild(child => child.generateApi(namespace));
10
- });
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlTm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbmFtZXNwYWNlTm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBRXpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsbUZBQW1GO1FBQ25GLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF3QjtRQUNsQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FRRiJ9
@@ -1,85 +0,0 @@
1
- import { Arguments } from './arguments.class';
2
- import { I18nNode } from './i18nNode.class';
3
- import { NodeName } from './nodeName';
4
- export class RootNode extends I18nNode {
5
- constructor(namespace = "I18n") {
6
- super(null, new NodeName(''));
7
- this.namespace = namespace;
8
- this._nodeTypes = [];
9
- this.customTypesImports = new Map();
10
- }
11
- registerNodeTypes(nodeTypes) {
12
- this._nodeTypes = nodeTypes;
13
- }
14
- nodeTypes() {
15
- return this._nodeTypes;
16
- }
17
- rootNode() {
18
- return this;
19
- }
20
- appendNamespaceTo(collector) {
21
- // noop.
22
- }
23
- /*********
24
- *
25
- ********/
26
- generateApi(module) {
27
- module.addHeader('/* eslint-disable @typescript-eslint/no-namespace */');
28
- module.addHeader('/* tslint:disable:no-shadowed-variable */');
29
- module.addHeader(`/******** IMPORTANT *********`);
30
- module.addHeader(` * `);
31
- module.addHeader(` * This file is automatically generated. Any edits will be lost.`);
32
- module.addHeader(` * `);
33
- module.addHeader(' ****/');
34
- module.addImport(`import MessageFormat from 'message-format';`);
35
- module.addImport(`import {isObject, isEmpty, isNumber, isNaN} from 'lodash-es'`);
36
- this.customTypesImports.forEach((importDeclaration, className) => {
37
- module.addImport(importDeclaration);
38
- });
39
- module.addImport('import * as defaultBundle from \'./locales/en.json\'');
40
- module.addImport('import * as messageKeysBundle from \'./locales/message-keys.json\'');
41
- module.createStatement('const _messageLocaleKey = "message-keys"');
42
- module.nestedContainer(this.namespace, namespace => {
43
- namespace.createStatement('let _locale:string|undefined = undefined');
44
- namespace.createStatement('let _activeBundle:any = null');
45
- namespace.createStatement('const _bundles = new Map<string,any>()');
46
- const args = Arguments.createAll({
47
- locale: 'string',
48
- bundle: 'any'
49
- });
50
- namespace.createFunction('registerBundle', args, 'void', writer => {
51
- writer.println(`if (_bundles.has(locale)) { throw new Error("bundle already registered for: " + locale)}`);
52
- writer.println(`_bundles.set(locale, bundle);`);
53
- });
54
- namespace.createFunction('setLocale', Arguments.createSingle('locale', 'string'), 'void', writer => {
55
- writer.println(`if (!_bundles.has(locale)) { throw new Error("No bundle registered for: " + locale)}`);
56
- writer.println(`_locale = locale;`);
57
- writer.println(`_activeBundle = _bundles.get(_locale);`);
58
- });
59
- namespace.createFunction('getAvailableLocales', Arguments.empty(), 'string[]', writer => {
60
- writer.println(`return Array.from(_bundles.keys()).filter(key => key !== _messageLocaleKey);`);
61
- });
62
- namespace.createFunction('getLocale', Arguments.empty(), 'string|undefined', writer => {
63
- writer.println(`return _locale`);
64
- });
65
- namespace.createStatement('registerBundle(_messageLocaleKey, messageKeysBundle)');
66
- namespace.createStatement('registerBundle("en", defaultBundle)');
67
- namespace.createStatement('setLocale("en")');
68
- this.eachChild(child => {
69
- child.generateApi(namespace);
70
- });
71
- });
72
- }
73
- /*********
74
- *
75
- ********/
76
- generateMessageBundle(object, include) {
77
- this.eachChild(child => {
78
- child.generateMessageBundle(object, include);
79
- });
80
- }
81
- registerCustomType(customType) {
82
- this.customTypesImports.set(customType.typeName, customType.importDeclaration);
83
- }
84
- }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Jvb3ROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLFFBQVMsU0FBUSxRQUFRO0lBS3BDLFlBQXFCLFlBQW1CLE1BQU07UUFDNUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRFgsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFIdEMsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFJaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsUUFBUTtJQUNWLENBQUM7SUFFRDs7Y0FFVTtJQUNWLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUN6RSxNQUFNLENBQUMsU0FBUyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMs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
@@ -1,26 +0,0 @@
1
- import * as _ from 'lodash';
2
- import { I18nNode } from './i18nNode.class';
3
- import { NodeName } from './nodeName';
4
- import { TextNode } from './textNode.class';
5
- export class TextArrayNode extends I18nNode {
6
- static matches(name, yamlData) {
7
- return _.isArray(yamlData) && _.reject(yamlData, entry => _.isString(entry)).length == 0;
8
- }
9
- parse(data) {
10
- data.forEach((text, index) => {
11
- this.parseChild(NodeName.parse(`line_${index + 1}`), text, TextNode);
12
- });
13
- this.eachChild(child => {
14
- this.getArgs().merge(child.getArgs());
15
- });
16
- }
17
- generateApi(container) {
18
- container.createFunction(this.name.asJsIdentifier, this.getArgs(), 'string[]', out => {
19
- this.createFunctionBody(out);
20
- });
21
- }
22
- createFunctionBody(out) {
23
- return this.createArrayFunctionBody(this.key, this.getArgs(), out);
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dEFycmF5Tm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdGV4dEFycmF5Tm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUc1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBSXpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFTO1FBQ1osSUFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUEyQjtRQUNyQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUVGIn0=