@coolon/i18n-resource-generator 3.2.2 → 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 (188) 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 +3 -2
  7. package/build/main/lib/ast/abstractElement.js +5 -1
  8. package/build/main/lib/ast/{classDef.class.d.ts → classDef.d.ts} +2 -2
  9. package/build/main/lib/ast/classDef.js +26 -0
  10. package/build/main/lib/ast/{containerElement.class.d.ts → containerElement.d.ts} +7 -7
  11. package/build/main/lib/ast/containerElement.js +3 -0
  12. package/build/{module/lib/ast/element.class.d.ts → main/lib/ast/element.d.ts} +2 -1
  13. package/build/main/lib/ast/element.js +3 -0
  14. package/build/{module/lib/ast/functionDef.class.d.ts → main/lib/ast/functionDef.d.ts} +2 -2
  15. package/build/main/lib/ast/functionDef.js +17 -0
  16. package/build/main/lib/ast/{interfaceDef.class.d.ts → interfaceDef.d.ts} +2 -2
  17. package/build/main/lib/ast/interfaceDef.js +28 -0
  18. package/build/{module/lib/ast/jsonModule.class.d.ts → main/lib/ast/jsonModule.d.ts} +2 -2
  19. package/build/main/lib/ast/jsonModule.js +22 -0
  20. package/build/{module/lib/ast/moduleDef.class.d.ts → main/lib/ast/moduleDef.d.ts} +2 -2
  21. package/build/main/lib/ast/moduleDef.js +43 -0
  22. package/build/main/lib/ast/{namespaceDef.class.d.ts → namespaceDef.d.ts} +7 -7
  23. package/build/main/lib/ast/namespaceDef.js +71 -0
  24. package/build/main/lib/ast/{objectDef.class.d.ts → objectDef.d.ts} +7 -7
  25. package/build/main/lib/ast/objectDef.js +86 -0
  26. package/build/{module/lib/ast/statementDef.class.d.ts → main/lib/ast/statementDef.d.ts} +1 -1
  27. package/build/main/lib/ast/statementDef.js +15 -0
  28. package/build/main/lib/ast/{tempContainer.class.d.ts → tempContainer.d.ts} +1 -1
  29. package/build/main/lib/ast/tempContainer.js +13 -0
  30. package/build/main/lib/ast/{typeDef.class.d.ts → typeDef.d.ts} +1 -1
  31. package/build/main/lib/ast/{typeDef.class.js → typeDef.js} +1 -1
  32. package/build/main/lib/constructor.js +3 -0
  33. package/build/main/lib/customTextArrayNode.d.ts +2 -2
  34. package/build/main/lib/customTextArrayNode.js +6 -6
  35. package/build/main/lib/customTextNode.d.ts +2 -2
  36. package/build/main/lib/customTextNode.js +6 -6
  37. package/build/main/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  38. package/build/main/lib/customTypeArrayNode.js +23 -0
  39. package/build/main/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  40. package/build/main/lib/customTypeNode.js +50 -0
  41. package/build/main/lib/emptyTextNode.d.ts +10 -0
  42. package/build/main/lib/emptyTextNode.js +46 -0
  43. package/build/main/lib/enumEntryNode.d.ts +5 -3
  44. package/build/main/lib/enumEntryNode.js +27 -8
  45. package/build/main/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  46. package/build/main/lib/enumNode.js +124 -0
  47. package/build/main/lib/i18nGenerator.d.ts +1 -1
  48. package/build/main/lib/i18nGenerator.js +16 -16
  49. package/build/main/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +6 -5
  50. package/build/main/lib/i18nNode.js +188 -0
  51. package/build/main/lib/index.d.ts +25 -25
  52. package/build/main/lib/index.js +26 -26
  53. package/build/main/lib/leafNode.d.ts +4 -0
  54. package/build/main/lib/leafNode.js +8 -0
  55. package/build/{module/lib/namespaceNode.class.d.ts → main/lib/namespaceNode.d.ts} +2 -2
  56. package/build/main/lib/namespaceNode.js +17 -0
  57. package/build/main/lib/nullNode.d.ts +10 -0
  58. package/build/main/lib/nullNode.js +43 -0
  59. package/build/main/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  60. package/build/main/lib/rootNode..js +89 -0
  61. package/build/main/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  62. package/build/main/lib/{textArrayNode.class.js → textArrayNode.js} +5 -5
  63. package/build/main/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  64. package/build/main/lib/textNode.js +158 -0
  65. package/build/main/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  66. package/build/main/lib/valueNode.js +60 -0
  67. package/build/main/lib/writer.js +30 -0
  68. package/build/module/lib/arg.js +24 -0
  69. package/build/{main/lib/arguments.class.d.ts → module/lib/arguments.d.ts} +1 -1
  70. package/build/module/lib/arguments.js +62 -0
  71. package/build/module/lib/ast/abstractContainerElement.d.ts +2 -2
  72. package/build/module/lib/ast/abstractElement.d.ts +3 -2
  73. package/build/module/lib/ast/abstractElement.js +5 -1
  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} +2 -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/constructor.js +2 -0
  99. package/build/module/lib/customTextArrayNode.d.ts +2 -2
  100. package/build/module/lib/customTextArrayNode.js +3 -3
  101. package/build/module/lib/customTextNode.d.ts +2 -2
  102. package/build/module/lib/customTextNode.js +3 -3
  103. package/build/module/lib/{customTypeArrayNode.class.d.ts → customTypeArrayNode.d.ts} +3 -3
  104. package/build/module/lib/customTypeArrayNode.js +19 -0
  105. package/build/module/lib/{customTypeNode.class.d.ts → customTypeNode.d.ts} +2 -2
  106. package/build/module/lib/customTypeNode.js +46 -0
  107. package/build/module/lib/emptyTextNode.d.ts +10 -0
  108. package/build/module/lib/emptyTextNode.js +23 -0
  109. package/build/module/lib/enumEntryNode.d.ts +5 -3
  110. package/build/module/lib/enumEntryNode.js +25 -6
  111. package/build/module/lib/{enumNode.class.d.ts → enumNode.d.ts} +3 -3
  112. package/build/module/lib/enumNode.js +101 -0
  113. package/build/module/lib/i18nGenerator.d.ts +1 -1
  114. package/build/module/lib/i18nGenerator.js +11 -11
  115. package/build/module/lib/{i18nNode.class.d.ts → i18nNode.d.ts} +6 -5
  116. package/build/module/lib/i18nNode.js +162 -0
  117. package/build/module/lib/index.d.ts +25 -25
  118. package/build/module/lib/index.js +26 -26
  119. package/build/module/lib/leafNode.d.ts +4 -0
  120. package/build/module/lib/leafNode.js +4 -0
  121. package/build/{main/lib/namespaceNode.class.d.ts → module/lib/namespaceNode.d.ts} +2 -2
  122. package/build/module/lib/namespaceNode.js +13 -0
  123. package/build/module/lib/nullNode.d.ts +10 -0
  124. package/build/module/lib/nullNode.js +20 -0
  125. package/build/module/lib/{rootNode.class.d.ts → rootNode..d.ts} +2 -2
  126. package/build/module/lib/rootNode..js +85 -0
  127. package/build/module/lib/{textArrayNode.class.d.ts → textArrayNode.d.ts} +3 -3
  128. package/build/module/lib/textArrayNode.js +26 -0
  129. package/build/module/lib/{textNode.class.d.ts → textNode.d.ts} +6 -5
  130. package/build/module/lib/textNode.js +132 -0
  131. package/build/module/lib/{valueNode.class.d.ts → valueNode.d.ts} +2 -2
  132. package/build/module/lib/valueNode.js +37 -0
  133. package/build/module/lib/writer.js +26 -0
  134. package/package.json +3 -2
  135. package/build/main/lib/arg.class.js +0 -28
  136. package/build/main/lib/arguments.class.js +0 -66
  137. package/build/main/lib/ast/classDef.class.js +0 -26
  138. package/build/main/lib/ast/containerElement.class.js +0 -3
  139. package/build/main/lib/ast/element.class.js +0 -3
  140. package/build/main/lib/ast/functionDef.class.js +0 -17
  141. package/build/main/lib/ast/interfaceDef.class.js +0 -28
  142. package/build/main/lib/ast/jsonModule.class.js +0 -22
  143. package/build/main/lib/ast/moduleDef.class.js +0 -43
  144. package/build/main/lib/ast/namespaceDef.class.js +0 -71
  145. package/build/main/lib/ast/objectDef.class.js +0 -86
  146. package/build/main/lib/ast/statementDef.class.js +0 -15
  147. package/build/main/lib/ast/tempContainer.class.js +0 -13
  148. package/build/main/lib/constructor.class.js +0 -3
  149. package/build/main/lib/customTypeArrayNode.class.js +0 -23
  150. package/build/main/lib/customTypeNode.class.js +0 -48
  151. package/build/main/lib/enumNode.class.js +0 -118
  152. package/build/main/lib/i18nNode.class.js +0 -185
  153. package/build/main/lib/namespaceNode.class.js +0 -17
  154. package/build/main/lib/rootNode.class.js +0 -89
  155. package/build/main/lib/textNode.class.js +0 -155
  156. package/build/main/lib/valueNode.class.js +0 -60
  157. package/build/main/lib/writer.class.js +0 -30
  158. package/build/module/lib/arg.class.js +0 -24
  159. package/build/module/lib/arguments.class.js +0 -62
  160. package/build/module/lib/ast/classDef.class.js +0 -22
  161. package/build/module/lib/ast/containerElement.class.js +0 -2
  162. package/build/module/lib/ast/element.class.js +0 -2
  163. package/build/module/lib/ast/functionDef.class.js +0 -13
  164. package/build/module/lib/ast/interfaceDef.class.js +0 -24
  165. package/build/module/lib/ast/jsonModule.class.js +0 -18
  166. package/build/module/lib/ast/moduleDef.class.js +0 -39
  167. package/build/module/lib/ast/namespaceDef.class.js +0 -67
  168. package/build/module/lib/ast/objectDef.class.js +0 -63
  169. package/build/module/lib/ast/statementDef.class.js +0 -11
  170. package/build/module/lib/ast/tempContainer.class.js +0 -9
  171. package/build/module/lib/ast/typeDef.class.js +0 -11
  172. package/build/module/lib/constructor.class.js +0 -2
  173. package/build/module/lib/customTypeArrayNode.class.js +0 -19
  174. package/build/module/lib/customTypeNode.class.js +0 -44
  175. package/build/module/lib/enumNode.class.js +0 -95
  176. package/build/module/lib/i18nNode.class.js +0 -159
  177. package/build/module/lib/namespaceNode.class.js +0 -13
  178. package/build/module/lib/rootNode.class.js +0 -85
  179. package/build/module/lib/textArrayNode.class.js +0 -26
  180. package/build/module/lib/textNode.class.js +0 -129
  181. package/build/module/lib/valueNode.class.js +0 -37
  182. package/build/module/lib/writer.class.js +0 -26
  183. /package/build/main/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  184. /package/build/main/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  185. /package/build/main/lib/{writer.class.d.ts → writer.d.ts} +0 -0
  186. /package/build/module/lib/{arg.class.d.ts → arg.d.ts} +0 -0
  187. /package/build/module/lib/{constructor.class.d.ts → constructor.d.ts} +0 -0
  188. /package/build/module/lib/{writer.class.d.ts → writer.d.ts} +0 -0
@@ -1,11 +1,11 @@
1
- import { Arguments } from '../arguments.class';
2
- import { Writer } from '../writer.class';
1
+ import { Arguments } from '../arguments';
2
+ import { Writer } from '../writer';
3
3
  import { AbstractContainerElement } from './abstractContainerElement';
4
- import { ClassDef } from './classDef.class';
5
- import { ContainerElement } from './containerElement.class';
6
- import { InterfaceDef } from './interfaceDef.class';
7
- import { ObjectDef } from './objectDef.class';
8
- import { TypeDef } from './typeDef.class';
4
+ import { ClassDef } from './classDef';
5
+ import { ContainerElement } from './containerElement';
6
+ import { InterfaceDef } from './interfaceDef';
7
+ import { ObjectDef } from './objectDef';
8
+ import { TypeDef } from './typeDef';
9
9
  export declare class NamespaceDef extends AbstractContainerElement implements ContainerElement {
10
10
  constructor(name: string);
11
11
  nestedContainer(name: string, configure: (def: ContainerElement) => void): ContainerElement;
@@ -0,0 +1,67 @@
1
+ import { AbstractContainerElement } from './abstractContainerElement';
2
+ import { ClassDef } from './classDef';
3
+ import { FunctionDef } from './functionDef';
4
+ import { InterfaceDef } from './interfaceDef';
5
+ import { ObjectDef } from './objectDef';
6
+ import { StatementDef } from './statementDef';
7
+ import { TypeDef } from './typeDef';
8
+ export class NamespaceDef extends AbstractContainerElement {
9
+ constructor(name) {
10
+ super(name);
11
+ }
12
+ nestedContainer(name, configure) {
13
+ return this.addElement(new NamespaceDef(name), configure);
14
+ }
15
+ createStatement(statement) {
16
+ this.addElement(new StatementDef(statement));
17
+ }
18
+ defineInterface(name, configure) {
19
+ return this.addElement(new InterfaceDef(name), configure);
20
+ }
21
+ defineType(name, value) {
22
+ return this.addElement(new TypeDef(name, value));
23
+ }
24
+ defineClass(name, args, configure) {
25
+ return this.addElement(new ClassDef(name, args), configure);
26
+ }
27
+ createObject(name, configure) {
28
+ return this.addElement(new ObjectDef(name), configure);
29
+ }
30
+ createFunction(name, args, returnType, bodyContent) {
31
+ this.addElement(new FunctionDef(name, args, returnType, bodyContent));
32
+ }
33
+ writeBody(writer) {
34
+ this.forEach(StatementDef, def => {
35
+ def.writeBody(writer);
36
+ });
37
+ this.forEach(TypeDef, def => {
38
+ writer.println(`export type ${def.name} = ${def.value};`);
39
+ });
40
+ this.forEach(InterfaceDef, def => {
41
+ writer.println(`export interface ${def.name} {`);
42
+ writer.indent(writer => def.writeBody(writer));
43
+ writer.println('}');
44
+ });
45
+ this.forEach(ClassDef, def => {
46
+ writer.println(`export class ${def.name} {`);
47
+ writer.indent(writer => def.writeBody(writer));
48
+ writer.println('}');
49
+ });
50
+ this.forEach(FunctionDef, def => {
51
+ writer.println(`export function ${def.name}(${def.args.asParameterDeclaration()}):${def.returnType} {`);
52
+ writer.indent(writer => def.writeBody(writer));
53
+ writer.println('}');
54
+ });
55
+ this.forEach(ObjectDef, def => {
56
+ writer.println(`export const ${def.name} = {`);
57
+ writer.indent(writer => def.writeBody(writer));
58
+ writer.println(`}${def.asTypeDecl()};`);
59
+ });
60
+ this.forEach(NamespaceDef, def => {
61
+ writer.println(`export namespace ${def.name} {`);
62
+ writer.indent(writer => def.writeBody(writer));
63
+ writer.println('}');
64
+ });
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlRGVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvbmFtZXNwYWNlRGVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUdwQyxNQUFNLE9BQU8sWUFBYSxTQUFRLHdCQUF3QjtJQUV4RCxZQUFZLElBQVk7UUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZLEVBQUUsU0FBMEM7UUFDdEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWSxFQUFFLFNBQXVDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUs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
@@ -1,11 +1,11 @@
1
- import { Arguments } from '../arguments.class';
2
- import { Writer } from '../writer.class';
1
+ import { Arguments } from '../arguments';
2
+ import { Writer } from '../writer';
3
3
  import { AbstractContainerElement } from './abstractContainerElement';
4
- import { ClassDef } from './classDef.class';
5
- import { ContainerElement } from './containerElement.class';
6
- import { InterfaceDef } from './interfaceDef.class';
7
- import { NamespaceDef } from './namespaceDef.class';
8
- import { TypeDef } from './typeDef.class';
4
+ import { ClassDef } from './classDef';
5
+ import { ContainerElement } from './containerElement';
6
+ import { InterfaceDef } from './interfaceDef';
7
+ import { NamespaceDef } from './namespaceDef';
8
+ import { TypeDef } from './typeDef';
9
9
  export declare class ObjectDef extends AbstractContainerElement implements ContainerElement {
10
10
  private _typeName;
11
11
  constructor(name: string);
@@ -0,0 +1,63 @@
1
+ import * as _ from 'lodash';
2
+ import { capitalize } from '../stringUtil';
3
+ import { AbstractContainerElement } from './abstractContainerElement';
4
+ import { FunctionDef } from './functionDef';
5
+ import { NamespaceDef } from './namespaceDef';
6
+ import { StatementDef } from './statementDef';
7
+ export class ObjectDef extends AbstractContainerElement {
8
+ constructor(name) {
9
+ super(name);
10
+ this._typeName = null;
11
+ }
12
+ asType(typeName) {
13
+ this._typeName = typeName;
14
+ return this;
15
+ }
16
+ typeName() {
17
+ return this._typeName;
18
+ }
19
+ createStatement(statement) {
20
+ this.addElement(new StatementDef(statement));
21
+ }
22
+ nestedContainer(name, configure) {
23
+ this.addElement(new ObjectDef(name), configure);
24
+ }
25
+ defineInterface(name, configure) {
26
+ return this.nearestNamespace().defineInterface(this.fqName(name), configure);
27
+ }
28
+ defineClass(name, args, configure) {
29
+ return this.nearestNamespace().defineClass(this.fqName(name), null, configure);
30
+ }
31
+ defineType(name, value) {
32
+ return this.nearestNamespace().defineType(name, value);
33
+ }
34
+ createObject(name, configure) {
35
+ return this.addElement(new ObjectDef(name), configure);
36
+ }
37
+ createFunction(name, args, returnType, bodyContent) {
38
+ this.addElement(new FunctionDef(name, args, returnType, bodyContent));
39
+ }
40
+ nearestNamespace() {
41
+ return _.findLast(this.pathToRoot(), element => element instanceof NamespaceDef);
42
+ }
43
+ fqName(rawName) {
44
+ const namespaceDef = this.nearestNamespace();
45
+ return this.pathTo(namespaceDef).slice(1, -1).map(e => capitalize(e.name)).join('') + rawName;
46
+ }
47
+ asTypeDecl() {
48
+ return this.typeName() ? ` as ${this.typeName()}` : '';
49
+ }
50
+ writeBody(writer) {
51
+ this.forEach(FunctionDef, (def, last) => {
52
+ writer.println(`${def.name}(${def.args.asParameterDeclaration()}):${def.returnType} {`);
53
+ writer.indent(writer => def.writeBody(writer));
54
+ writer.println(`}${last ? '' : ','}`);
55
+ });
56
+ this.forEach(ObjectDef, (def, last) => {
57
+ writer.println(`${def.name}: {`);
58
+ writer.indent(writer => def.writeBody(writer));
59
+ writer.println(`}${def.asTypeDecl()}${last ? '' : ','}`);
60
+ });
61
+ }
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0RGVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3Qvb2JqZWN0RGVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxTQUFVLFNBQVEsd0JBQXdCO0lBSXJELFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFITixjQUFTLEdBQVcsSUFBSSxDQUFDO0lBSWpDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBZ0I7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWlCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVksRUFBRSxTQUE4QztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWSxFQUFFLFNBQXNDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENB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
@@ -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 StatementDef extends AbstractElement {
4
4
  private line;
@@ -0,0 +1,11 @@
1
+ import { AbstractElement } from './abstractElement';
2
+ export class StatementDef extends AbstractElement {
3
+ constructor(line) {
4
+ super('');
5
+ this.line = line;
6
+ }
7
+ writeBody(writer) {
8
+ writer.println(`${this.line}${this.line.endsWith(';') ? '' : ';'}`);
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtZW50RGVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3Qvc3RhdGVtZW50RGVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8sWUFBYSxTQUFRLGVBQWU7SUFDL0MsWUFBb0IsSUFBWTtRQUM5QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFRO0lBRWhDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiJ9
@@ -1,4 +1,4 @@
1
- import { ObjectDef } from "./objectDef.class";
1
+ import { ObjectDef } from "./objectDef";
2
2
  export declare class TempContainer extends ObjectDef {
3
3
  constructor();
4
4
  }
@@ -0,0 +1,9 @@
1
+ import { ObjectDef } from "./objectDef";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcENvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3RlbXBDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUV0QywyREFBMkQ7QUFDM0QsZ0NBQWdDO0FBQ2hDLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUN4QztRQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBQ0oifQ==
@@ -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;
@@ -0,0 +1,11 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZURlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L3R5cGVEZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sT0FBTyxPQUFRLFNBQVEsZUFBZTtJQUV4QyxZQUFZLElBQVksRUFBa0IsS0FBWTtRQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFEMEIsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUV0RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsT0FBTztJQUNYLENBQUM7Q0FDSiJ9
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# 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,5 +1,5 @@
1
- import { Arguments } from './arguments.class';
2
- import { TextArrayNode } from './textArrayNode.class';
1
+ import { Arguments } from './arguments';
2
+ import { TextArrayNode } from './textArrayNode';
3
3
  export class CustomTextArrayNode extends TextArrayNode {
4
4
  static matches(name, yamlData) {
5
5
  return TextArrayNode.matches(name, yamlData);
@@ -13,4 +13,4 @@ export class CustomTextArrayNode extends TextArrayNode {
13
13
  return this.createArrayFunctionBody(this.key, this.getArgs(), out);
14
14
  }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dEFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVGV4dEFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBRXBELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUN0RixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBRztRQUNwQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBRUYifQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dEFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVGV4dEFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQUVwRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxTQUEyQjtRQUNyQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQUc7UUFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUVGIn0=
@@ -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,5 +1,5 @@
1
- import { Arguments } from './arguments.class';
2
- import { TextNode } from './textNode.class';
1
+ import { Arguments } from './arguments';
2
+ import { TextNode } from './textNode';
3
3
  export class CustomTextNode extends TextNode {
4
4
  static matches(name, yamlData) {
5
5
  return TextNode.matches(name, yamlData);
@@ -11,4 +11,4 @@ export class CustomTextNode extends TextNode {
11
11
  });
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dE5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRleHROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBRTFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLDJDQUEyQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVGV4dE5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVRleHROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFFBQVE7SUFFMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBMkI7UUFDckMsMkNBQTJDO1FBQzNDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -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,19 @@
1
+ import { CustomTypeNode } from './customTypeNode';
2
+ import { I18nNode } from './i18nNode';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZUFycmF5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY3VzdG9tVHlwZUFycmF5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRO0lBSS9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3pELENBQUM7SUFFUyxVQUFVLENBQXFCLElBQWMsRUFBRSxJQUFTLEVBQUUsZUFBK0I7UUFDakcsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF3QjtRQUNsQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGIn0=
@@ -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,46 @@
1
+ import { ObjectDef } from './ast/objectDef';
2
+ import { CustomTextArrayNode } from './customTextArrayNode';
3
+ import { CustomTextNode } from './customTextNode';
4
+ import { EmptyTextNode } from './emptyTextNode';
5
+ import { I18nNode } from './i18nNode';
6
+ import { NullNode } from './nullNode';
7
+ import { ValueNode } from './valueNode';
8
+ export class CustomTypeNode extends I18nNode {
9
+ static matches(name, yamlData) {
10
+ return yamlData && name.customTypeName && !name.isArray;
11
+ }
12
+ supportedChildNodeTypes() {
13
+ return [EmptyTextNode, CustomTextArrayNode, CustomTextNode, ValueNode, NullNode];
14
+ }
15
+ parse(container) {
16
+ super.parse(container);
17
+ this.eachChild(child => this.getArgs().merge(child.getArgs()));
18
+ }
19
+ generateApi(parent) {
20
+ if (this.hasArgs()) {
21
+ const tempContainer = new ObjectDef('!temp!');
22
+ this.eachChild(child => {
23
+ child.generateApi(tempContainer);
24
+ });
25
+ parent.createFunction(this.name.asJsIdentifier, this.getArgs(), this.name.customTypeName, body => {
26
+ body.println('return {');
27
+ body.indent(out => {
28
+ tempContainer.writeBody(out);
29
+ });
30
+ body.println('}');
31
+ });
32
+ }
33
+ else {
34
+ parent.createObject(this.name.asJsIdentifier, def => {
35
+ def.asType(this.name.customTypeName);
36
+ this.eachChild(child => {
37
+ child.generateApi(def);
38
+ });
39
+ });
40
+ }
41
+ }
42
+ get namespaceName() {
43
+ return super.namespaceName;
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZU5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVR5cGVOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sWUFBWSxDQUFDO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd4QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFFBQVE7SUFFMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMxRCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQWM7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUMvRixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNoQixhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2xELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBRUgsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUM3QixDQUFDO0NBQ0YifQ==
@@ -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,23 @@
1
+ import * as _ from 'lodash';
2
+ import { Arguments } from './arguments';
3
+ import { LeafNode } from './leafNode';
4
+ // TODO: this isn't ready for use as it assumes all translations will have empty strings...
5
+ // The typical use case is for when you have a custom types node where you want to leave the value blank.
6
+ // Should probably handle this with a null entry and exclude it from the translation bundle.
7
+ export class EmptyTextNode extends LeafNode {
8
+ static matches(name, yamlData) {
9
+ return _.isString(yamlData) && _.isEmpty(yamlData);
10
+ }
11
+ parse(data) {
12
+ this.data = data;
13
+ }
14
+ generateApi(out) {
15
+ out.createFunction(this.name.asJsIdentifier, Arguments.empty(), this.returnType(), out => {
16
+ out.println(` return "";`);
17
+ });
18
+ }
19
+ returnType() {
20
+ return 'string';
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHlUZXh0Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW1wdHlUZXh0Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXhDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHdEMsMkZBQTJGO0FBQzNGLCtHQUErRztBQUMvRyxrR0FBa0c7QUFDbEcsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBR3pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFxQjtRQUMvQixHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdkYsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIn0=
@@ -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,16 +1,35 @@
1
- import { ObjectDef } from './ast/objectDef.class';
1
+ import { ArrayMultimap } from '@teppeis/multimaps';
2
+ import { ObjectDef } from './ast/objectDef';
2
3
  import { CustomTextNode } from './customTextNode';
3
- import { I18nNode } from './i18nNode.class';
4
- import { TextNode } from './textNode.class';
4
+ import { I18nNode } from './i18nNode';
5
+ import { LeafNode } from './leafNode';
6
+ import { NullNode } from './nullNode';
7
+ import { TextNode } from './textNode';
5
8
  export class EnumEntryNode extends I18nNode {
6
9
  static matches(name, data) {
7
10
  return true;
8
11
  }
12
+ supportedChildNodeTypes() {
13
+ return [CustomTextNode, TextNode, NullNode];
14
+ }
9
15
  getPropertiesNames() {
10
16
  return this.children.map(it => it.name.asJsIdentifier);
11
17
  }
12
- supportedChildNodeTypes() {
13
- return [CustomTextNode, TextNode];
18
+ getPropertyTypes() {
19
+ const result = new ArrayMultimap();
20
+ this.children.forEach(it => {
21
+ if (it instanceof LeafNode) {
22
+ let propertyName = it.name.asJsIdentifier;
23
+ let returnType = it.returnType();
24
+ if (!result.get(propertyName).includes(returnType)) {
25
+ result.put(propertyName, returnType);
26
+ }
27
+ }
28
+ else {
29
+ throw new Error(`Enum entries only support leaf nodes, got ${it.constructor.name} at ${(this.parent.fqNamespaceName)}.${this.name}`);
30
+ }
31
+ });
32
+ return result;
14
33
  }
15
34
  parse(container) {
16
35
  super.parse(container);
@@ -40,4 +59,4 @@ export class EnumEntryNode extends I18nNode {
40
59
  }
41
60
  }
42
61
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bUVudHJ5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bUVudHJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQUV6QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFjO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCLEVBQUUsUUFBaUI7UUFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDM0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRiJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bUVudHJ5Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZW51bUVudHJ5Tm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLFlBQVksQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QyxNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFFekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQWtCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDekIsSUFBSSxFQUFFLFlBQVksUUFBUSxFQUFFO2dCQUMxQixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDMUMsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQ2xELE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUN0QzthQUNGO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUN0STtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFjO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCLEVBQUUsUUFBaUI7UUFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDM0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRiJ9
@@ -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;