@coolon/i18n-resource-generator 2.0.1 → 2.0.3

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 (95) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/main/lib/arguments.class.d.ts +6 -8
  3. package/build/main/lib/arguments.class.js +9 -2
  4. package/build/main/lib/ast/abstractContainerElement.d.ts +4 -4
  5. package/build/main/lib/ast/abstractContainerElement.js +3 -2
  6. package/build/main/lib/ast/abstractElement.d.ts +2 -2
  7. package/build/main/lib/ast/abstractElement.js +1 -1
  8. package/build/main/lib/ast/containerElement.class.d.ts +11 -10
  9. package/build/main/lib/ast/jsonModule.class.d.ts +8 -0
  10. package/build/main/lib/ast/jsonModule.class.js +21 -0
  11. package/build/main/lib/ast/namespaceDef.class.d.ts +1 -0
  12. package/build/main/lib/ast/namespaceDef.class.js +8 -1
  13. package/build/main/lib/ast/objectDef.class.d.ts +9 -8
  14. package/build/main/lib/ast/objectDef.class.js +11 -7
  15. package/build/main/lib/ast/statementDef.class.d.ts +7 -0
  16. package/build/main/lib/ast/statementDef.class.js +14 -0
  17. package/build/main/lib/bin/cli.js +21 -17
  18. package/build/main/lib/customTypeArrayNode.class.d.ts +6 -6
  19. package/build/main/lib/customTypeArrayNode.class.js +8 -11
  20. package/build/main/lib/customTypeNode.class.d.ts +6 -20
  21. package/build/main/lib/customTypeNode.class.js +18 -20
  22. package/build/main/lib/enumNode.class.d.ts +6 -6
  23. package/build/main/lib/enumNode.class.js +28 -45
  24. package/build/main/lib/i18nGenerator.d.ts +2 -10
  25. package/build/main/lib/i18nGenerator.js +39 -78
  26. package/build/main/lib/i18nNode.class.d.ts +10 -12
  27. package/build/main/lib/i18nNode.class.js +30 -44
  28. package/build/main/lib/namespaceNode.class.d.ts +5 -4
  29. package/build/main/lib/namespaceNode.class.js +4 -4
  30. package/build/main/lib/nodeName.d.ts +13 -0
  31. package/build/main/lib/nodeName.js +90 -0
  32. package/build/main/lib/rootNode.class.d.ts +10 -1
  33. package/build/main/lib/rootNode.class.js +42 -7
  34. package/build/main/lib/textArrayNode.class.d.ts +4 -3
  35. package/build/main/lib/textArrayNode.class.js +6 -5
  36. package/build/main/lib/textNode.class.d.ts +4 -2
  37. package/build/main/lib/textNode.class.js +9 -13
  38. package/build/main/lib/valueNode.class.d.ts +5 -4
  39. package/build/main/lib/valueNode.class.js +5 -5
  40. package/build/main/lib/writer.class.js +2 -2
  41. package/build/module/lib/arguments.class.d.ts +6 -8
  42. package/build/module/lib/arguments.class.js +10 -3
  43. package/build/module/lib/ast/abstractContainerElement.d.ts +4 -4
  44. package/build/module/lib/ast/abstractContainerElement.js +4 -3
  45. package/build/module/lib/ast/abstractElement.d.ts +2 -2
  46. package/build/module/lib/ast/abstractElement.js +1 -1
  47. package/build/module/lib/ast/containerElement.class.d.ts +11 -10
  48. package/build/module/lib/ast/jsonModule.class.d.ts +8 -0
  49. package/build/module/lib/ast/jsonModule.class.js +18 -0
  50. package/build/module/lib/ast/namespaceDef.class.d.ts +1 -0
  51. package/build/module/lib/ast/namespaceDef.class.js +8 -1
  52. package/build/module/lib/ast/objectDef.class.d.ts +9 -8
  53. package/build/module/lib/ast/objectDef.class.js +12 -8
  54. package/build/module/lib/ast/statementDef.class.d.ts +7 -0
  55. package/build/module/lib/ast/statementDef.class.js +11 -0
  56. package/build/module/lib/bin/cli.js +21 -17
  57. package/build/module/lib/customTypeArrayNode.class.d.ts +6 -6
  58. package/build/module/lib/customTypeArrayNode.class.js +9 -12
  59. package/build/module/lib/customTypeNode.class.d.ts +6 -20
  60. package/build/module/lib/customTypeNode.class.js +18 -20
  61. package/build/module/lib/enumNode.class.d.ts +6 -6
  62. package/build/module/lib/enumNode.class.js +30 -47
  63. package/build/module/lib/i18nGenerator.d.ts +2 -10
  64. package/build/module/lib/i18nGenerator.js +49 -87
  65. package/build/module/lib/i18nNode.class.d.ts +10 -12
  66. package/build/module/lib/i18nNode.class.js +30 -41
  67. package/build/module/lib/namespaceNode.class.d.ts +5 -4
  68. package/build/module/lib/namespaceNode.class.js +5 -5
  69. package/build/module/lib/nodeName.d.ts +13 -0
  70. package/build/module/lib/nodeName.js +77 -0
  71. package/build/module/lib/rootNode.class.d.ts +10 -1
  72. package/build/module/lib/rootNode.class.js +42 -7
  73. package/build/module/lib/textArrayNode.class.d.ts +4 -3
  74. package/build/module/lib/textArrayNode.class.js +7 -6
  75. package/build/module/lib/textNode.class.d.ts +4 -2
  76. package/build/module/lib/textNode.class.js +9 -13
  77. package/build/module/lib/valueNode.class.d.ts +5 -4
  78. package/build/module/lib/valueNode.class.js +5 -5
  79. package/build/module/lib/writer.class.js +2 -2
  80. package/fixtures/config.json +1 -0
  81. package/fixtures/ui.alarms.en.yml +108 -0
  82. package/fixtures/ui.common.en.yml +23 -0
  83. package/fixtures/ui.date_time.en.yml +94 -0
  84. package/fixtures/ui.devices.en.yml +288 -0
  85. package/fixtures/ui.lux.en.yml +44 -0
  86. package/fixtures/ui.notification.en.yml +238 -0
  87. package/fixtures/ui.places.en.yml +104 -0
  88. package/fixtures/ui.reports.en.yml +138 -0
  89. package/fixtures/ui.scene.en.yml +11 -0
  90. package/fixtures/ui.schedule.en.yml +7 -0
  91. package/fixtures/ui.search.en.yml +73 -0
  92. package/fixtures/ui.validation.en.yml +63 -0
  93. package/fixtures/ui.zones.en.yml +121 -0
  94. package/package.json +7 -4
  95. package/fixtures/test.yml +0 -20
@@ -5,22 +5,22 @@ import { TextArrayNode } from './textArrayNode.class';
5
5
  import { TextNode } from './textNode.class';
6
6
  import { ValueNode } from './valueNode.class';
7
7
  class CustomTextNode extends TextNode {
8
- static matches(yamlData) {
9
- return TextNode.matches(yamlData);
8
+ static matches(name, yamlData) {
9
+ return TextNode.matches(name, yamlData);
10
10
  }
11
- compile(container) {
11
+ generateApi(container) {
12
12
  // we get our args from our outer function.
13
- container.createFunction(this.javaScriptName, Arguments.empty(), 'string', out => {
13
+ container.createFunction(this.name.asJsIdentifier, Arguments.empty(), 'string', out => {
14
14
  this.createFunctionBody(out);
15
15
  });
16
16
  }
17
17
  }
18
18
  class CustomTextArrayNode extends TextArrayNode {
19
- static matches(yamlData) {
20
- return TextArrayNode.matches(yamlData);
19
+ static matches(name, yamlData) {
20
+ return TextArrayNode.matches(name, yamlData);
21
21
  }
22
- compile(container) {
23
- container.createFunction(this.javaScriptName, Arguments.empty(), 'string[]', out => {
22
+ generateApi(container) {
23
+ container.createFunction(this.name.asJsIdentifier, Arguments.empty(), 'string[]', out => {
24
24
  this.createFunctionBody(out);
25
25
  });
26
26
  }
@@ -37,27 +37,22 @@ class CustomTextArrayNode extends TextArrayNode {
37
37
  }
38
38
  }
39
39
  export class CustomTypeNode extends I18nNode {
40
- static matches(yamlData) {
41
- return yamlData && yamlData['constructor'] && yamlData['constructor'].name === 'CustomTypeContainer';
40
+ static matches(name, yamlData) {
41
+ return yamlData && name.customTypeName && !name.isArray;
42
42
  }
43
43
  supportedChildNodeTypes() {
44
44
  return [CustomTextArrayNode, CustomTextNode, ValueNode];
45
45
  }
46
46
  parse(container) {
47
- this.customType = container['customType'];
48
- super.parse(container['content']);
47
+ super.parse(container);
49
48
  this.eachChild(child => this.getArgs().merge(child.getArgs()));
50
49
  }
51
- parseEntry(name, data, defaultNodeType) {
52
- // console.log(defaultNodeType);
53
- return super.parseEntry(name, data, defaultNodeType);
54
- }
55
- compile(parent) {
50
+ generateApi(parent) {
56
51
  const tempContainer = new ObjectDef('!temp!');
57
52
  this.eachChild(child => {
58
- child.compile(tempContainer);
53
+ child.generateApi(tempContainer);
59
54
  });
60
- parent.createFunction(this.javaScriptName, this.getArgs(), this.customType.className, body => {
55
+ parent.createFunction(this.name.asJsIdentifier, this.getArgs(), this.name.customTypeName, body => {
61
56
  body.println('return {');
62
57
  body.indent(out => {
63
58
  tempContainer.writeBody(out);
@@ -65,5 +60,8 @@ export class CustomTypeNode extends I18nNode {
65
60
  body.println('}');
66
61
  });
67
62
  }
63
+ get namespaceName() {
64
+ return super.namespaceName;
65
+ }
68
66
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVR5cGVOb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE1BQU0sY0FBZSxTQUFRLFFBQVE7SUFFbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFhO1FBQzFCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQTJCO1FBQ2pDLDJDQUEyQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFvQixTQUFRLGFBQWE7SUFFN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFhO1FBQzFCLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQTJCO1FBQ2pDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFB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
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHlwZU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2N1c3RvbVR5cGVOb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxNQUFNLGNBQWUsU0FBUSxRQUFRO0lBRW5DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLDJDQUEyQztRQUMzQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBb0IsU0FBUSxhQUFhO0lBRTdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFD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
@@ -1,10 +1,10 @@
1
+ import { ContainerElement } from './ast/containerElement.class';
2
+ import { Constructor } from './constructor.class';
1
3
  import { I18nNode } from './i18nNode.class';
2
- import { ContainerElement } from "./ast/containerElement.class";
3
- import { Constructor } from "./constructor.class";
4
+ import { NodeName } from './nodeName';
4
5
  export declare class EnumNode extends I18nNode {
5
- static matches(yamlData: any): boolean;
6
- parse(enumResourceContainer: any): any;
7
- protected parseEntry<T extends I18nNode>(name: string, data: any, defaultNodeType: Constructor<T>): I18nNode;
8
- compile(parent: ContainerElement): void;
6
+ static matches(name: NodeName, yamlData: any): boolean;
7
+ protected parseChild<T extends I18nNode>(name: NodeName, data: any, defaultNodeType: Constructor<T>): I18nNode;
8
+ generateApi(parent: ContainerElement): void;
9
9
  lookupKeys(): string[];
10
10
  }
@@ -1,47 +1,42 @@
1
+ import { Arguments } from './arguments.class';
2
+ import { FunctionDef } from './ast/functionDef.class';
3
+ import { ObjectDef } from './ast/objectDef.class';
1
4
  import { I18nNode } from './i18nNode.class';
2
- import { TextNode } from "./textNode.class";
3
- import { Arguments } from "./arguments.class";
4
- import { ObjectDef } from "./ast/objectDef.class";
5
- import { FunctionDef } from "./ast/functionDef.class";
6
- import { NameSpaceNode } from "./namespaceNode.class";
5
+ import { NameSpaceNode } from './namespaceNode.class';
6
+ import { TextNode } from './textNode.class';
7
7
  class EnumMethodNode extends TextNode {
8
8
  }
9
9
  class EnumEntryNode extends I18nNode {
10
- // static matches(data:any) {
11
- // return true;
12
- // }
13
- compile(parent, typeName) {
10
+ static matches(name, data) {
11
+ return true;
12
+ }
13
+ generateApi(parent, typeName) {
14
14
  parent.createObject(this.namespaceName, def => {
15
15
  def.asType(typeName);
16
- this.eachChild(child => child.compile(def));
16
+ this.eachChild(child => child.generateApi(def));
17
17
  });
18
18
  }
19
19
  }
20
20
  export class EnumNode extends I18nNode {
21
- static matches(yamlData) {
22
- return yamlData && yamlData['constructor'] && yamlData['constructor'].name === 'EnumResourceContainer';
21
+ static matches(name, yamlData) {
22
+ // console.log(name);
23
+ return yamlData && name.customTypeName === 'Enum';
23
24
  }
24
- // protected supportedChildNodeTypes(): NodeConstructor<any>[] {
25
- // return [EnumEntryNode];
26
- // }
27
- parse(enumResourceContainer) {
28
- return super.parse(enumResourceContainer['content']);
29
- }
30
- parseEntry(name, data, defaultNodeType) {
25
+ parseChild(name, data, defaultNodeType) {
31
26
  if (defaultNodeType['name'] === NameSpaceNode['name']) {
32
- return super.parseEntry(name, data, EnumEntryNode);
27
+ return super.parseChild(name, data, EnumEntryNode);
33
28
  }
34
29
  else {
35
- throw new Error(`entry '${name}' in '${this.accessor}' is not an object. !Enum children to be an object.`);
30
+ throw new Error(`entry '${name}' in '${this.accessor}' is not an object. Enum children to be an object.`);
36
31
  }
37
32
  }
38
- compile(parent) {
33
+ generateApi(parent) {
39
34
  parent.nestedContainer(this.namespaceName, namespace => {
40
35
  const enumType = namespace.defineInterface(`${this.className}Entry`);
41
36
  // only process enum entry nodes for now so we guarantee all the children
42
37
  // are enum types.
43
38
  this.eachChild(child => {
44
- child.compile(namespace, enumType.name);
39
+ child.generateApi(namespace, enumType.name);
45
40
  });
46
41
  const enums = namespace.allOfType(ObjectDef);
47
42
  enums[0].forEach(FunctionDef, f => {
@@ -50,56 +45,44 @@ export class EnumNode extends I18nNode {
50
45
  enums[0].forEach(ObjectDef, f => {
51
46
  enumType.createObject(f.name, f.typeName());
52
47
  });
53
- // compile the rest of the children.
54
- // this.eachChild(child => {
55
- // if (!(child instanceof EnumEntryNode)) {
56
- // child.compile(namespace);
57
- // }
58
- // });
59
48
  const enumKeyType = `${this.fqClassName}Key`;
60
- namespace.defineType(enumKeyType, this.children.map(child => `'${child.camelCaseName}'`).join('|'));
49
+ namespace.defineType(enumKeyType, this.children.map(child => `'${child.name.asJsIdentifier}'`).join('|'));
61
50
  // now create our lookup functions for the enum notes
62
- namespace.createFunction('lookup', Arguments.create('key', enumKeyType), enumType.name, out => {
63
- // this.eachChild(child => {
64
- // if (child instanceof EnumEntryNode) {
65
- // out.println(`if (key === '${child.camelCaseName}') { return I18n.${child.accessor}; }`);
66
- // }
67
- // });
68
- out.println(`const result = this.tryLookup(key);`);
51
+ namespace.createFunction('lookup', Arguments.createSingle('key', enumKeyType), enumType.name, out => {
52
+ out.println(`const result = tryLookup(key);`);
69
53
  out.println(`if (!result) {`);
70
54
  out.println(` throw new Error("Unknown enum key '" + key + "'. Must be one of ${this.lookupKeys().join(', ')}")`);
71
55
  out.println(`}`);
72
56
  out.println(`return result;`);
73
57
  });
74
- namespace.createFunction('tryLookup', Arguments.create('key', 'string'), enumType.name, out => {
58
+ namespace.createFunction('tryLookup', Arguments.createSingle('key', 'string'), enumType.name, out => {
75
59
  this.eachChild(child => {
76
60
  // if (child instanceof EnumEntryNode) {
77
- out.println(`if (key === '${child.camelCaseName}') { return I18n.${child.accessor}; }`);
61
+ out.println(`if (key === '${child.name.asJsIdentifier}') { return I18n.${child.accessor}; }`);
78
62
  // }
79
63
  });
80
64
  out.println(`return null;`);
81
65
  });
82
- namespace.createFunction('nameOf', Arguments.create('option', enumType.name), enumKeyType, out => {
66
+ namespace.createFunction('nameOf', Arguments.createSingle('option', enumType.name), enumKeyType, out => {
83
67
  this.eachChild(child => {
84
- // if (child instanceof EnumEntryNode) {
85
- out.println(`if (option === I18n.${child.accessor}) { return '${child.camelCaseName}'; }`);
86
- // }
68
+ out.println(`if (option === I18n.${child.accessor}) { return '${child.name.asJsIdentifier}'; }`);
87
69
  });
88
70
  out.println(`throw new Error("Unknown enum")`);
89
71
  });
90
72
  namespace.createFunction('asArray', Arguments.empty(), `${enumType.name}[]`, out => {
91
73
  out.println(`return [`);
92
74
  this.eachChild(child => {
93
- // if (child instanceof EnumEntryNode) {
94
75
  out.indent(_out => _out.println(`I18n.${child.accessor},`));
95
- // }
96
76
  });
97
77
  out.println(']');
98
78
  });
99
79
  });
100
80
  }
81
+ // generateMessageBundle(parent: ContainerElement): void {
82
+ //
83
+ // }
101
84
  lookupKeys() {
102
- return this.children.map(child => child.camelCaseName);
85
+ return this.children.map(child => child.name.asJsIdentifier);
103
86
  }
104
87
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VudW1Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRCxNQUFNLGNBQWUsU0FBUSxRQUFRO0NBSXBDO0FBRUQsTUFBTSxhQUFjLFNBQVEsUUFBUTtJQUVoQyw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLElBQUk7SUFFSixPQUFPLENBQUMsTUFBd0IsRUFBRSxRQUFnQjtRQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDMUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBR0QsTUFBTSxPQUFPLFFBQVMsU0FBUSxRQUFRO0lBRWxDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBYTtRQUN4QixPQUFPLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQTtJQUMxRyxDQUFD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
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bU5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VudW1Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzVDLE1BQU0sY0FBZSxTQUFRLFFBQVE7Q0FJcEM7QUFFRCxNQUFNLGFBQWMsU0FBUSxRQUFRO0lBRWxDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLElBQVM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXdCLEVBQUUsUUFBaUI7UUFDckQsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyxRQUFTLFNBQVEsUUFBUTtJQUVwQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLHFCQUFxQjtRQUNyQixPQUFPLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLE1BQU0s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
@@ -1,11 +1,3 @@
1
- import * as yaml from 'js-yaml';
2
- export declare class CustomType {
3
- readonly className: string;
4
- readonly importDeclaration: string;
5
- constructor(className: string, importDeclaration: string);
6
- asYamlType(): yaml.Type;
7
- asYamlListType(): yaml.Type;
8
- }
9
1
  export declare class I18nGenerator {
10
2
  private rootNode;
11
3
  private customTypes;
@@ -13,6 +5,6 @@ export declare class I18nGenerator {
13
5
  constructor();
14
6
  registerType(typeName: string, importDeclaration: string): void;
15
7
  readFile(fileName: string): void;
16
- getSchema(): yaml.Schema;
17
- toString(): string;
8
+ getApiContent(): string;
9
+ getDefaultBundleContent(): string;
18
10
  }
@@ -1,99 +1,66 @@
1
1
  /* tslint:disable */
2
2
  import * as fs from 'fs';
3
3
  import * as yaml from 'js-yaml';
4
- import { Module } from "./ast/moduleDef.class";
5
- import { CustomTypeArrayNode } from "./customTypeArrayNode.class";
6
- import { CustomTypeNode } from "./customTypeNode.class";
7
- import { EnumNode } from "./enumNode.class";
8
- import { NameSpaceNode } from "./namespaceNode.class";
9
- import { RootNode } from "./rootNode.class";
10
- import { TextArrayNode } from "./textArrayNode.class";
11
- import { TextNode } from "./textNode.class";
12
- import { ValueNode } from "./valueNode.class";
13
- import { RootWriter } from "./writer.class";
4
+ import { Module } from './ast/moduleDef.class';
5
+ import { CustomTypeArrayNode } from './customTypeArrayNode.class';
6
+ import { CustomTypeNode } from './customTypeNode.class';
7
+ import { EnumNode } from './enumNode.class';
8
+ import { NameSpaceNode } from './namespaceNode.class';
9
+ import { RootNode } from './rootNode.class';
10
+ import { TextArrayNode } from './textArrayNode.class';
11
+ import { TextNode } from './textNode.class';
12
+ import { ValueNode } from './valueNode.class';
13
+ import { RootWriter } from './writer.class';
14
14
  // TODO: use factories
15
15
  // interface NodeFactory<T extends Node> {
16
16
  // matches(data:any):boolean;
17
17
  // create(name:string, data:any):T;
18
18
  // }
19
- class EnumResourceContainer {
20
- constructor(content) {
21
- this.content = content;
22
- }
23
- }
24
- class CustomTypeContainer {
25
- constructor(customType, content) {
26
- this.customType = customType;
27
- this.content = content;
28
- }
29
- }
30
- class CustomTypeArrayContainer {
31
- constructor(customType, content) {
32
- this.customType = customType;
33
- this.content = content;
34
- }
35
- }
19
+ //
20
+ // class EnumResourceContainer {
21
+ // constructor(public readonly content: any) {
22
+ // }
23
+ // }
24
+ //
25
+ // class CustomTypeContainer {
26
+ // constructor(public readonly customType: NodeName, public readonly content: any) {
27
+ // }
28
+ // }
29
+ //
30
+ // class CustomTypeArrayContainer {
31
+ // constructor(public readonly customType: NodeName, public readonly content: any) {
32
+ // }
33
+ // }
36
34
  // TODO: merge this with nodes, so nodes become a type, not sure if this will be easy to do or not as
37
35
  // we don't have the key name at this point. Might have to put it all in the factory so it can be called
38
36
  // to embed a marker in the data and use that when checking the node type.
39
- const EnumResourceType = new yaml.Type('!Enum', {
40
- kind: 'mapping',
41
- construct: function (data) {
42
- data = data || {}; // in case of empty node
43
- return new EnumResourceContainer(data);
44
- },
45
- instanceOf: EnumResourceContainer
46
- // `represent` is omitted here. So, Space objects will be dumped as is.
47
- // That is regular mapping with three key-value pairs but with !space tag.
48
- });
49
- export class CustomType {
50
- constructor(className, importDeclaration) {
51
- this.className = className;
52
- this.importDeclaration = importDeclaration;
53
- }
54
- asYamlType() {
55
- const self = this;
56
- return new yaml.Type(`!${this.className}`, {
57
- kind: 'mapping',
58
- construct: function (data) {
59
- data = data || {}; // in case of empty node
60
- return new CustomTypeContainer(self, data);
61
- },
62
- instanceOf: CustomTypeContainer
63
- // `represent` is omitted here. So, Space objects will be dumped as is.
64
- // That is regular mapping with three key-value pairs but with !space tag.
65
- });
66
- }
67
- asYamlListType() {
68
- const self = this;
69
- return new yaml.Type(`!List(${this.className})`, {
70
- kind: 'mapping',
71
- construct: function (data) {
72
- data = data || {}; // in case of empty node
73
- return new CustomTypeArrayContainer(self, data);
74
- },
75
- instanceOf: CustomTypeArrayContainer
76
- // `represent` is omitted here. So, Space objects will be dumped as is.
77
- // That is regular mapping with three key-value pairs but with !space tag.
78
- });
79
- }
80
- }
37
+ // const EnumResourceType = new yaml.Type('!Enum', {
38
+ // kind: 'mapping',
39
+ // construct: function (data) {
40
+ // data = data || {}; // in case of empty node
41
+ // return new EnumResourceContainer(data);
42
+ // },
43
+ // instanceOf: EnumResourceContainer
44
+ // // `represent` is omitted here. So, Space objects will be dumped as is.
45
+ // // That is regular mapping with three key-value pairs but with !space tag.
46
+ // });
47
+ //
48
+ //
81
49
  // TODO: replace custom gulp task with https://www.npmjs.com/package/gulp-reduce-file
82
50
  export class I18nGenerator {
83
51
  constructor() {
84
- this.customTypes = [];
85
52
  this.rootNode = new RootNode();
86
53
  this.rootNode.registerNodeTypes([
87
- CustomTypeArrayNode, CustomTypeNode, EnumNode, TextNode, TextArrayNode, ValueNode, NameSpaceNode
54
+ EnumNode, CustomTypeArrayNode, CustomTypeNode, TextNode, TextArrayNode, ValueNode, NameSpaceNode
88
55
  ]);
89
56
  }
90
57
  registerType(typeName, importDeclaration) {
91
- this.customTypes.push(new CustomType(typeName, importDeclaration));
58
+ this.rootNode.registerCustomType({ typeName, importDeclaration });
92
59
  }
93
60
  readFile(fileName) {
94
- let options = { schema: this.getSchema() };
61
+ // let options = {schema: this.getSchema()};
95
62
  console.log(`Loading: ${fileName}`);
96
- const yamlData = yaml.safeLoad(fs.readFileSync(fileName, 'utf8'), { schema: this.getSchema() });
63
+ const yamlData = yaml.safeLoad(fs.readFileSync(fileName, 'utf8'));
97
64
  try {
98
65
  this.rootNode.parse(yamlData);
99
66
  }
@@ -101,22 +68,17 @@ export class I18nGenerator {
101
68
  throw new Error(`Failed to parse file:${fileName}\n-> ${e.message}\n-> ${e.stack}`);
102
69
  }
103
70
  }
104
- getSchema() {
105
- if (!this._schema) {
106
- let types = [].concat(EnumResourceType, this.customTypes.map(type => type.asYamlType()), this.customTypes.map(type => type.asYamlListType()));
107
- this._schema = yaml.Schema.create(types);
108
- }
109
- return this._schema;
110
- }
111
- toString() {
71
+ getApiContent() {
112
72
  const writer = new RootWriter();
113
73
  const module = new Module();
114
- this.customTypes.forEach(type => {
115
- module.addImport(type.importDeclaration);
116
- });
117
- this.rootNode.compile(module);
74
+ this.rootNode.generateApi(module);
118
75
  module.writeBody(writer);
119
76
  return writer.toString();
120
77
  }
78
+ getDefaultBundleContent() {
79
+ const json = {};
80
+ this.rootNode.generateMessageBundle(json);
81
+ return JSON.stringify(json, null, 3);
82
+ }
121
83
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUMsc0JBQXNCO0FBQ3RCLDBDQUEwQztBQUMxQyxpQ0FBaUM7QUFDakMsdUNBQXVDO0FBQ3ZDLElBQUk7QUFFSixNQUFNLHFCQUFxQjtJQUN6QixZQUE0QixPQUFZO1FBQVosWUFBTyxHQUFQLE9BQU8sQ0FBSztJQUN4QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFtQjtJQUN2QixZQUE0QixVQUFzQixFQUFrQixPQUFZO1FBQXBELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBa0IsWUFBTyxHQUFQLE9BQU8sQ0FBSztJQUNoRixDQUFDO0NBQ0Y7QUFFRCxN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
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxTQUFTLENBQUM7QUFFaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUMsc0JBQXNCO0FBQ3RCLDBDQUEwQztBQUMxQyxpQ0FBaUM7QUFDakMsdUNBQXVDO0FBQ3ZDLElBQUk7QUFDSixFQUFFO0FBQ0YsZ0NBQWdDO0FBQ2hDLGdEQUFnRDtBQUNoRCxNQUFNO0FBQ04sSUFBSTtBQUNKLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsc0ZBQXNGO0FBQ3RGLE1BQU07QUFDTixJQUFJO0FBQ0osRUFBRTtBQUNGLG1DQUFtQztBQUNuQyxzRkFBc0Y7QUFDdEYsTUFBTTtBQUNOLElBQUk7QUFFSixxR0FBcUc7QUFDckcseUdBQXlHO0FBQ3pHLDBFQUEwRTtBQUMxRSxvREFBb0Q7QUFDcEQscUJBQXFCO0FBQ3JCLGlDQUFpQztBQUNqQyxrREFBa0Q7QUFDbEQsOENBQThDO0FBQzlDLE9BQU87QUFDUCxzQ0FBc0M7QUFDdEMsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSxNQUFNO0FBQ04sRUFBRTtBQUNGLEVBQUU7QUFFRixxRkFBcUY7QUFDckYsTUFBTSxPQUFPLGFBQWE7SUFNeEI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixRQUFRLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWE7U0FDakcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFnQixFQUFFLGlCQUF5QjtRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCO1FBQ3ZCLDRDQUE0QztRQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSTtZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9CO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixRQUFRLFFBQVEsQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNyRjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBRUYifQ==
@@ -1,17 +1,18 @@
1
1
  import { Arguments } from './arguments.class';
2
2
  import { ContainerElement } from './ast/containerElement.class';
3
3
  import { Constructor } from './constructor.class';
4
+ import { NodeName } from './nodeName';
4
5
  export declare type NodeConstructor<T extends I18nNode> = {
5
- matches(data: any): boolean;
6
+ matches(name: NodeName, data: any): boolean;
6
7
  new (...args: any[]): T;
7
8
  prototype: T;
8
9
  };
9
10
  export declare class I18nNode {
10
11
  protected parent: I18nNode;
11
- readonly name: string;
12
+ readonly name: NodeName;
12
13
  private childNodes;
13
14
  private templateArgs;
14
- constructor(parent: I18nNode, name: string);
15
+ constructor(parent: I18nNode, name: NodeName);
15
16
  readonly key: string;
16
17
  /**
17
18
  * Returns the full path to this nodes namespace as used in code. Doesn't include the I18n prefix.
@@ -21,23 +22,20 @@ export declare class I18nNode {
21
22
  isRoot(): boolean;
22
23
  pathToRoot(): I18nNode[];
23
24
  parse(yamlData: any): void;
24
- protected parseEntry<T extends I18nNode>(name: string, data: any, defaultNodeType: Constructor<T>): I18nNode;
25
- getOrCreatNode(name: any, type: typeof I18nNode): I18nNode;
25
+ protected parseChild<T extends I18nNode>(name: NodeName, data: any, defaultNodeType: Constructor<T>): I18nNode;
26
+ getOrCreatNode(name: NodeName, type: typeof I18nNode): I18nNode;
26
27
  rootNode(): I18nNode;
27
28
  nodeTypes(): NodeConstructor<any>[];
28
- protected computeNodeTypeOf(data: any): NodeConstructor<any>;
29
+ protected computeNodeTypeOf(name: NodeName, data: any): NodeConstructor<any>;
29
30
  protected supportedChildNodeTypes(): NodeConstructor<any>[];
30
- protected withEachProperty(yamlData: any, cb: (name: string, data: any) => void): void;
31
+ protected withEachProperty(yamlData: any, cb: (name: NodeName, data: any) => void): void;
31
32
  protected readonly children: I18nNode[];
32
33
  protected eachChild(cb: (node: I18nNode) => void): void;
33
34
  getArgs(): Arguments;
34
35
  hasArgs(): boolean;
35
- readonly safeName: string;
36
- readonly javaScriptName: string;
37
- readonly camelCaseName: string;
38
36
  readonly namespaceName: string;
39
37
  readonly className: string;
40
38
  readonly fqClassName: string;
41
- readonly snakeCaseName: string;
42
- compile(parent: ContainerElement): void;
39
+ generateApi(parent: ContainerElement): void;
40
+ generateMessageBundle(parent: {}): void;
43
41
  }