@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
@@ -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=
@@ -1,129 +0,0 @@
1
- import parseMessageFormat from 'format-message-parse';
2
- import * as _ from 'lodash';
3
- import { Arg } from './arg.class';
4
- import { I18nNode } from './i18nNode.class';
5
- // the result is an array. <message_container> = <message_part>[]
6
- // <message_part> == string | [argument_element]
7
- // <argument_element> =
8
- // ["<argName>"] OR
9
- // ["<argName>", "<argFormat>"] OR
10
- // ["<argName>", "<argFormat>", "<formatOptions>"] for argFormat == date|time|number
11
- // ["<argName>", "<argFormat>", {option_a: <message_container>, option_b: <message_container>, other: <messsage_container>] for argFormat == select, plural
12
- //
13
- export class TextNode extends I18nNode {
14
- static matches(name, yamlData) {
15
- return _.isString(yamlData);
16
- }
17
- parse(data) {
18
- this.text = data;
19
- try {
20
- this.messageSchema = parseMessageFormat(this.text);
21
- this.scanContainer(this.messageSchema);
22
- }
23
- catch (e) {
24
- throw new Error(`Invalid message format ${this.key}=${data} -> ${e.message}`);
25
- }
26
- }
27
- generateApi(container) {
28
- // TODO: Make this take the args as an interface so callers use it like I18n.hello({name: 'World'}) with type safety.
29
- container.createFunction(this.name.asJsIdentifier, this.getArgs(), 'string', out => {
30
- this.createFunctionBody(out);
31
- });
32
- }
33
- generateMessageBundle(parent, include) {
34
- parent[this.name.asJsIdentifier] = include === 'text' ? this.text : this.key;
35
- }
36
- createFunctionBody(out) {
37
- out.println(`try {`);
38
- out.indent(out => {
39
- out.println(`const translation = _activeBundle.${this.key};`);
40
- out.println(`if ((isEmpty(translation) && !isNumber(translation)) || isNaN(translation)) {`);
41
- out.indent(out => {
42
- out.println(`return "missing key " + "${this.key}";`);
43
- });
44
- out.println('} else { ');
45
- out.indent(out => {
46
- if (this.getArgs().any()) {
47
- out.println(`return new MessageFormat(translation, _locale).format(${this.getArgs().asArgsObject()});`);
48
- }
49
- else {
50
- out.println(`return translation;`);
51
- }
52
- });
53
- out.println('}');
54
- });
55
- out.println(`} catch (error) { `);
56
- out.indent(out => {
57
- out.println(`return "missing key " + "${this.key}";`);
58
- });
59
- out.println(`}`);
60
- }
61
- valueString(value) {
62
- return `"${value}"`;
63
- }
64
- scanContainer(elements) {
65
- elements.forEach(element => {
66
- if (_.isArray(element)) {
67
- this.createArgument(element);
68
- }
69
- });
70
- }
71
- scanFormatOptions(options) {
72
- _.forOwn(options, (val, key) => {
73
- this.scanContainer(val);
74
- });
75
- }
76
- createArgument(messagePart) {
77
- const [argName, argType] = messagePart;
78
- if (argName == '#') {
79
- return;
80
- }
81
- // console.log(`createArgument -> ${JSON.stringify(messagePart)}`)
82
- switch (argType) {
83
- case 'number':
84
- this.addArgument(new Arg(argName, 'number'));
85
- break;
86
- case 'date':
87
- this.addArgument(new Arg(argName, 'Date'));
88
- break;
89
- case 'time':
90
- this.addArgument(new Arg(argName, 'Time'));
91
- break;
92
- case 'plural':
93
- this.addArgument(new Arg(argName, 'number'));
94
- // console.log(`plural bits: ${JSON.stringify(messagePart[3])}`);
95
- this.scanFormatOptions(messagePart[3]);
96
- break;
97
- case 'select':
98
- const formatOptions = messagePart[2];
99
- this.createSelectArgument(argName, formatOptions);
100
- // console.log(`select bits: ${JSON.stringify(formatOptions)}`);
101
- this.scanFormatOptions(formatOptions);
102
- break;
103
- default:
104
- // the arg been used with no type, so we only add it if it hasn't
105
- // already been defined.
106
- if (!this.getArgs().contains(argName)) {
107
- this.addArgument(new Arg(argName, 'string'));
108
- }
109
- break;
110
- }
111
- }
112
- createSelectArgument(name, formatOptions) {
113
- // check if it's a boolean option.
114
- const arg = new Arg(name, 'string');
115
- const options = Object.keys(formatOptions);
116
- if (options.length == 2) {
117
- const optionName = formatOptions[options[0]] == 'other' ? options[1] : options[0];
118
- this.addArgument(arg.asBooleanOptionNamed(optionName));
119
- }
120
- else {
121
- this.addArgument(arg);
122
- }
123
- }
124
- addArgument(arg) {
125
- // console.log(`addArgument -> ${JSON.stringify(arg)}`);
126
- this.getArgs().add(arg);
127
- }
128
- }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RleHROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJNUMsaUVBQWlFO0FBQ2pFLGdEQUFnRDtBQUNoRCx1QkFBdUI7QUFDdkIsc0JBQXNCO0FBQ3RCLHFDQUFxQztBQUNyQyx1RkFBdUY7QUFDdkYsOEpBQThKO0FBQzlKLEVBQUU7QUFHRixNQUFNLE9BQU8sUUFBUyxTQUFRLFFBQVE7SUFLcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFjLENBQUM7UUFDM0IsSUFBSTtZQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsU0FBMkI7UUFDckMscUhBQXFIO1FBQ3JILFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUks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
@@ -1,37 +0,0 @@
1
- import * as _ from 'lodash';
2
- import { Arguments } from './arguments.class';
3
- import { I18nNode } from './i18nNode.class';
4
- export class ValueNode extends I18nNode {
5
- static matches(name, yamlData) {
6
- return this.isValue(yamlData) || (_.isArray(yamlData) && _.reject(yamlData, entry => this.isValue(entry)).length == 0);
7
- }
8
- static isValue(thing) {
9
- return _.isBoolean(thing) || _.isNumber(thing) || _.isNil(thing);
10
- }
11
- // constructor(parent: Node, private name: String, private children: any) {
12
- // super(parent);
13
- // }
14
- parse(data) {
15
- this.data = data;
16
- }
17
- generateApi(out) {
18
- out.createFunction(this.name.asJsIdentifier, Arguments.empty(), this.returnType(), out => {
19
- if (_.isArray(this.data)) {
20
- out.println(` return [${this.data.map(d => this.valueString(d)).join(', ')}];`);
21
- }
22
- else {
23
- out.println(` return ${this.valueString(this.data)};`);
24
- }
25
- });
26
- }
27
- returnType() {
28
- return _.isArray(this.data) ? `${this.valueType(this.data[0])}[]` : this.valueType(this.data);
29
- }
30
- valueType(value) {
31
- return _.isNil(value) ? 'string' : typeof value;
32
- }
33
- valueString(value) {
34
- return value;
35
- }
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVOb2RlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92YWx1ZU5vZGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc1QyxNQUFNLE9BQU8sU0FBVSxTQUFRLFFBQVE7SUFHckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxxQkFBcUI7SUFDckIsSUFBSTtJQUVKLEtBQUssQ0FBQyxJQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFxQjtRQUUvQixHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdkYsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkY7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIn0=
@@ -1,26 +0,0 @@
1
- export class RootWriter {
2
- constructor() {
3
- this.lines = [];
4
- }
5
- println(it) {
6
- this.lines.push(it);
7
- }
8
- indent(func) {
9
- func(new ChildWriter(this));
10
- }
11
- toString() {
12
- return this.lines.join('\n');
13
- }
14
- }
15
- class ChildWriter {
16
- constructor(parent) {
17
- this.parent = parent;
18
- }
19
- println(it) {
20
- return this.parent.println(' ' + it);
21
- }
22
- indent(func) {
23
- func(new ChildWriter(this));
24
- }
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93cml0ZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDVSxVQUFLLEdBQWEsRUFBRSxDQUFDO0lBYS9CLENBQUM7SUFYQyxPQUFPLENBQUMsRUFBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQThCO1FBQ25DLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFdBQVc7SUFFZixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUE4QjtRQUNuQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0YifQ==
File without changes
File without changes