@coolon/i18n-resource-generator 2.0.2 → 2.0.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.
- package/CHANGELOG.md +10 -0
- package/build/main/lib/arguments.class.d.ts +6 -8
- package/build/main/lib/arguments.class.js +9 -2
- package/build/main/lib/ast/abstractContainerElement.d.ts +4 -4
- package/build/main/lib/ast/abstractContainerElement.js +3 -2
- package/build/main/lib/ast/abstractElement.d.ts +2 -2
- package/build/main/lib/ast/abstractElement.js +1 -1
- package/build/main/lib/ast/containerElement.class.d.ts +11 -10
- package/build/main/lib/ast/jsonModule.class.d.ts +8 -0
- package/build/main/lib/ast/jsonModule.class.js +21 -0
- package/build/main/lib/ast/namespaceDef.class.d.ts +1 -0
- package/build/main/lib/ast/namespaceDef.class.js +8 -1
- package/build/main/lib/ast/objectDef.class.d.ts +9 -8
- package/build/main/lib/ast/objectDef.class.js +11 -7
- package/build/main/lib/ast/statementDef.class.d.ts +7 -0
- package/build/main/lib/ast/statementDef.class.js +14 -0
- package/build/main/lib/bin/cli.js +21 -17
- package/build/main/lib/customTypeArrayNode.class.d.ts +6 -6
- package/build/main/lib/customTypeArrayNode.class.js +8 -11
- package/build/main/lib/customTypeNode.class.d.ts +6 -20
- package/build/main/lib/customTypeNode.class.js +18 -20
- package/build/main/lib/enumNode.class.d.ts +6 -6
- package/build/main/lib/enumNode.class.js +28 -45
- package/build/main/lib/i18nGenerator.d.ts +2 -10
- package/build/main/lib/i18nGenerator.js +39 -78
- package/build/main/lib/i18nNode.class.d.ts +10 -12
- package/build/main/lib/i18nNode.class.js +30 -44
- package/build/main/lib/namespaceNode.class.d.ts +5 -4
- package/build/main/lib/namespaceNode.class.js +4 -4
- package/build/main/lib/nodeName.d.ts +13 -0
- package/build/main/lib/nodeName.js +90 -0
- package/build/main/lib/rootNode.class.d.ts +10 -1
- package/build/main/lib/rootNode.class.js +45 -6
- package/build/main/lib/textArrayNode.class.d.ts +4 -3
- package/build/main/lib/textArrayNode.class.js +6 -5
- package/build/main/lib/textNode.class.d.ts +4 -2
- package/build/main/lib/textNode.class.js +9 -13
- package/build/main/lib/valueNode.class.d.ts +5 -4
- package/build/main/lib/valueNode.class.js +5 -5
- package/build/main/lib/writer.class.js +2 -2
- package/build/module/lib/arguments.class.d.ts +6 -8
- package/build/module/lib/arguments.class.js +10 -3
- package/build/module/lib/ast/abstractContainerElement.d.ts +4 -4
- package/build/module/lib/ast/abstractContainerElement.js +4 -3
- package/build/module/lib/ast/abstractElement.d.ts +2 -2
- package/build/module/lib/ast/abstractElement.js +1 -1
- package/build/module/lib/ast/containerElement.class.d.ts +11 -10
- package/build/module/lib/ast/jsonModule.class.d.ts +8 -0
- package/build/module/lib/ast/jsonModule.class.js +18 -0
- package/build/module/lib/ast/namespaceDef.class.d.ts +1 -0
- package/build/module/lib/ast/namespaceDef.class.js +8 -1
- package/build/module/lib/ast/objectDef.class.d.ts +9 -8
- package/build/module/lib/ast/objectDef.class.js +12 -8
- package/build/module/lib/ast/statementDef.class.d.ts +7 -0
- package/build/module/lib/ast/statementDef.class.js +11 -0
- package/build/module/lib/bin/cli.js +21 -17
- package/build/module/lib/customTypeArrayNode.class.d.ts +6 -6
- package/build/module/lib/customTypeArrayNode.class.js +9 -12
- package/build/module/lib/customTypeNode.class.d.ts +6 -20
- package/build/module/lib/customTypeNode.class.js +18 -20
- package/build/module/lib/enumNode.class.d.ts +6 -6
- package/build/module/lib/enumNode.class.js +30 -47
- package/build/module/lib/i18nGenerator.d.ts +2 -10
- package/build/module/lib/i18nGenerator.js +49 -87
- package/build/module/lib/i18nNode.class.d.ts +10 -12
- package/build/module/lib/i18nNode.class.js +30 -41
- package/build/module/lib/namespaceNode.class.d.ts +5 -4
- package/build/module/lib/namespaceNode.class.js +5 -5
- package/build/module/lib/nodeName.d.ts +13 -0
- package/build/module/lib/nodeName.js +77 -0
- package/build/module/lib/rootNode.class.d.ts +10 -1
- package/build/module/lib/rootNode.class.js +45 -6
- package/build/module/lib/textArrayNode.class.d.ts +4 -3
- package/build/module/lib/textArrayNode.class.js +7 -6
- package/build/module/lib/textNode.class.d.ts +4 -2
- package/build/module/lib/textNode.class.js +9 -13
- package/build/module/lib/valueNode.class.d.ts +5 -4
- package/build/module/lib/valueNode.class.js +5 -5
- package/build/module/lib/writer.class.js +2 -2
- package/fixtures/config.json +1 -0
- package/fixtures/ui.alarms.en.yml +108 -0
- package/fixtures/ui.common.en.yml +23 -0
- package/fixtures/ui.date_time.en.yml +94 -0
- package/fixtures/ui.devices.en.yml +288 -0
- package/fixtures/ui.lux.en.yml +44 -0
- package/fixtures/ui.notification.en.yml +238 -0
- package/fixtures/ui.places.en.yml +104 -0
- package/fixtures/ui.reports.en.yml +138 -0
- package/fixtures/ui.scene.en.yml +11 -0
- package/fixtures/ui.schedule.en.yml +7 -0
- package/fixtures/ui.search.en.yml +73 -0
- package/fixtures/ui.validation.en.yml +63 -0
- package/fixtures/ui.zones.en.yml +121 -0
- package/package.json +7 -4
- package/fixtures/test.yml +0 -20
|
@@ -6,20 +6,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
6
6
|
result["default"] = mod;
|
|
7
7
|
return result;
|
|
8
8
|
};
|
|
9
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
-
};
|
|
12
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
10
|
const _ = __importStar(require("lodash"));
|
|
14
|
-
const string_1 = __importDefault(require("string"));
|
|
15
11
|
const arguments_class_1 = require("./arguments.class");
|
|
16
|
-
const
|
|
17
|
-
function safeName(name) {
|
|
18
|
-
return _.includes(reservedWords, name) ? `${name}_` : name;
|
|
19
|
-
}
|
|
20
|
-
function camelize(text) {
|
|
21
|
-
return string_1.default(text).camelize().toString();
|
|
22
|
-
}
|
|
12
|
+
const nodeName_1 = require("./nodeName");
|
|
23
13
|
class I18nNode {
|
|
24
14
|
constructor(parent, name) {
|
|
25
15
|
this.parent = parent;
|
|
@@ -28,7 +18,7 @@ class I18nNode {
|
|
|
28
18
|
this.templateArgs = new arguments_class_1.Arguments();
|
|
29
19
|
}
|
|
30
20
|
get key() {
|
|
31
|
-
return this.pathToRoot().slice(1).map(a => a.name).join('.');
|
|
21
|
+
return this.pathToRoot().slice(1).map(a => a.name.asJsIdentifier).join('.');
|
|
32
22
|
}
|
|
33
23
|
/**
|
|
34
24
|
* Returns the full path to this nodes namespace as used in code. Doesn't include the I18n prefix.
|
|
@@ -49,29 +39,29 @@ class I18nNode {
|
|
|
49
39
|
}
|
|
50
40
|
parse(yamlData) {
|
|
51
41
|
this.withEachProperty(yamlData, (name, data) => {
|
|
52
|
-
this.
|
|
42
|
+
this.parseChild(name, data, this.computeNodeTypeOf(name, data));
|
|
53
43
|
});
|
|
54
44
|
}
|
|
55
|
-
|
|
56
|
-
const
|
|
45
|
+
parseChild(name, data, defaultNodeType) {
|
|
46
|
+
const child = this.getOrCreatNode(name, defaultNodeType);
|
|
57
47
|
if (this.constructor['acceptsChildNodesOfType']) {
|
|
58
48
|
const types = this.constructor['acceptsChildNodesOfType']();
|
|
59
|
-
if (!_.find(types, type =>
|
|
49
|
+
if (!_.find(types, type => child instanceof type)) {
|
|
60
50
|
throw new Error(`Unsupported child type, must be one of ${types.map(t => t.name).join()}, got ${defaultNodeType.name}.`);
|
|
61
51
|
}
|
|
62
52
|
}
|
|
63
|
-
|
|
64
|
-
return
|
|
53
|
+
child.parse(data);
|
|
54
|
+
return child;
|
|
65
55
|
}
|
|
66
56
|
getOrCreatNode(name, type) {
|
|
67
|
-
let node = this.childNodes.get(name);
|
|
57
|
+
let node = this.childNodes.get(name.asJsIdentifier);
|
|
68
58
|
if (node && node.constructor != type) {
|
|
69
|
-
throw new Error(`Existing node named ${name} has different type, expected ${type['
|
|
59
|
+
throw new Error(`Existing node named ${name} has different type, expected ${type['nodeName']}, got ${node.constructor['nodeName']}`);
|
|
70
60
|
}
|
|
71
|
-
// console.log(`--> getOrCreateNode(${
|
|
61
|
+
// console.log(`--> getOrCreateNode(${nodeName}, ${type}) ${node ? 'found' : 'created'}`);
|
|
72
62
|
if (!node) {
|
|
73
63
|
node = new type(this, name);
|
|
74
|
-
this.childNodes.set(name, node);
|
|
64
|
+
this.childNodes.set(name.asJsIdentifier, node);
|
|
75
65
|
}
|
|
76
66
|
return node;
|
|
77
67
|
}
|
|
@@ -81,8 +71,8 @@ class I18nNode {
|
|
|
81
71
|
nodeTypes() {
|
|
82
72
|
return this.rootNode().nodeTypes();
|
|
83
73
|
}
|
|
84
|
-
computeNodeTypeOf(data) {
|
|
85
|
-
const type = _.find(this.supportedChildNodeTypes(), it => it.matches(data));
|
|
74
|
+
computeNodeTypeOf(name, data) {
|
|
75
|
+
const type = _.find(this.supportedChildNodeTypes(), it => it.matches(name, data));
|
|
86
76
|
if (!type) {
|
|
87
77
|
throw new Error(`no matching node type found for ${this.accessor}`);
|
|
88
78
|
}
|
|
@@ -94,10 +84,11 @@ class I18nNode {
|
|
|
94
84
|
withEachProperty(yamlData, cb) {
|
|
95
85
|
if (yamlData) {
|
|
96
86
|
Object.getOwnPropertyNames(yamlData).forEach(unsafeKey => {
|
|
97
|
-
|
|
98
|
-
|
|
87
|
+
const name = nodeName_1.NodeName.parse(unsafeKey);
|
|
88
|
+
if (name.isReserved()) {
|
|
89
|
+
console.log(`Warning: Yaml key '${unsafeKey}' in ${this.key} is a reserved word, converting to '${name.safeName}'`);
|
|
99
90
|
}
|
|
100
|
-
cb(
|
|
91
|
+
cb(name, yamlData[unsafeKey]);
|
|
101
92
|
});
|
|
102
93
|
}
|
|
103
94
|
}
|
|
@@ -113,33 +104,28 @@ class I18nNode {
|
|
|
113
104
|
hasArgs() {
|
|
114
105
|
return this.getArgs().any();
|
|
115
106
|
}
|
|
116
|
-
get safeName() {
|
|
117
|
-
return safeName(this.name);
|
|
118
|
-
}
|
|
119
|
-
get javaScriptName() {
|
|
120
|
-
const name = this.camelCaseName;
|
|
121
|
-
return reservedWords.includes(this.name) ? `${name}_` : name;
|
|
122
|
-
}
|
|
123
|
-
get camelCaseName() {
|
|
124
|
-
return camelize(this.name);
|
|
125
|
-
}
|
|
126
107
|
get namespaceName() {
|
|
127
|
-
return this.
|
|
108
|
+
return this.name.asJsIdentifier;
|
|
128
109
|
}
|
|
129
110
|
get className() {
|
|
130
|
-
return this.
|
|
111
|
+
return this.name.asClassName;
|
|
131
112
|
}
|
|
132
113
|
get fqClassName() {
|
|
133
114
|
// the root node has no className and the second one is the language
|
|
134
115
|
let parents = this.pathToRoot().slice(2);
|
|
135
116
|
return parents.map(n => n.className).join('');
|
|
136
117
|
}
|
|
137
|
-
|
|
138
|
-
return this.name;
|
|
139
|
-
}
|
|
140
|
-
compile(parent) {
|
|
118
|
+
generateApi(parent) {
|
|
141
119
|
throw new Error('abstract method');
|
|
142
120
|
}
|
|
121
|
+
generateMessageBundle(parent) {
|
|
122
|
+
const me = {};
|
|
123
|
+
parent[this.namespaceName] = me;
|
|
124
|
+
this.eachChild(child => {
|
|
125
|
+
// console.log({child: child.constructor});
|
|
126
|
+
return child.generateMessageBundle(me);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
143
129
|
}
|
|
144
130
|
exports.I18nNode = I18nNode;
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bk5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2kxOG5Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUc1Qix1REFBOEM7QUFHOUMseUNBQXNDO0FBU3RDLE1BQWEsUUFBUTtJQUtuQixZQUFzQixNQUFnQixFQUFrQixJQUFjO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQVU7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBVTtRQUg5RCxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ2hFLGlCQUFZLEdBQWMsSUFBSSwyQkFBUyxFQUFFLENBQUM7SUFHbEQsQ0FBQztJQUdELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFB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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ContainerElement } from './ast/containerElement.class';
|
|
2
|
+
import { I18nNode } from './i18nNode.class';
|
|
3
|
+
import { NodeName } from './nodeName';
|
|
3
4
|
export declare class NameSpaceNode extends I18nNode {
|
|
4
|
-
static matches(yamlData: any): boolean;
|
|
5
|
-
|
|
5
|
+
static matches(name: NodeName, yamlData: any): boolean;
|
|
6
|
+
generateApi(parent: ContainerElement): void;
|
|
6
7
|
}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const i18nNode_class_1 = require("./i18nNode.class");
|
|
4
4
|
class NameSpaceNode extends i18nNode_class_1.I18nNode {
|
|
5
|
-
static matches(yamlData) {
|
|
5
|
+
static matches(name, yamlData) {
|
|
6
6
|
// we're fallback so we're greedy, just make sure I'm last in the list of matchers
|
|
7
7
|
return true;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
generateApi(parent) {
|
|
10
10
|
parent.nestedContainer(this.namespaceName, namespace => {
|
|
11
|
-
this.eachChild(child => child.
|
|
11
|
+
this.eachChild(child => child.generateApi(namespace));
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.NameSpaceNode = NameSpaceNode;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlTm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbmFtZXNwYWNlTm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHFEQUE0QztBQUc1QyxNQUFhLGFBQWMsU0FBUSx5QkFBUTtJQUV6QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLG1GQUFtRjtRQUNuRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0I7UUFDbEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUY7QUFiRCxzQ0FhQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class NodeName {
|
|
2
|
+
private name;
|
|
3
|
+
readonly customTypeName?: string;
|
|
4
|
+
readonly isArray?: boolean;
|
|
5
|
+
constructor(name: string, customTypeName?: string, isArray?: boolean);
|
|
6
|
+
isReserved(): boolean;
|
|
7
|
+
readonly safeName: string;
|
|
8
|
+
readonly asJsIdentifier: string;
|
|
9
|
+
readonly asClassName: string;
|
|
10
|
+
}
|
|
11
|
+
export declare namespace NodeName {
|
|
12
|
+
function parse(name: string): NodeName;
|
|
13
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
12
|
+
if (mod && mod.__esModule) return mod;
|
|
13
|
+
var result = {};
|
|
14
|
+
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
15
|
+
result["default"] = mod;
|
|
16
|
+
return result;
|
|
17
|
+
};
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
const src_1 = require("@typescript-plus/fast-memoize-decorator/dist/src");
|
|
23
|
+
const _ = __importStar(require("lodash"));
|
|
24
|
+
const string_1 = __importDefault(require("string"));
|
|
25
|
+
function safeName(name) {
|
|
26
|
+
return _.includes(reservedWords, name) ? `${name}_` : name;
|
|
27
|
+
}
|
|
28
|
+
function camelize(text) {
|
|
29
|
+
return string_1.default(text).camelize().toString();
|
|
30
|
+
}
|
|
31
|
+
const reservedWords = ['default', 'switch', 'if', 'else'];
|
|
32
|
+
class NodeName {
|
|
33
|
+
constructor(name, customTypeName, isArray) {
|
|
34
|
+
this.name = name;
|
|
35
|
+
this.customTypeName = customTypeName;
|
|
36
|
+
this.isArray = isArray;
|
|
37
|
+
}
|
|
38
|
+
isReserved() {
|
|
39
|
+
return reservedWords.includes(this.name);
|
|
40
|
+
}
|
|
41
|
+
get safeName() {
|
|
42
|
+
let camelName = camelize(this.name);
|
|
43
|
+
let safeName = reservedWords.includes(camelName) ? `${camelName}_` : camelName;
|
|
44
|
+
// console.log({ safeName });
|
|
45
|
+
return safeName;
|
|
46
|
+
}
|
|
47
|
+
get asJsIdentifier() {
|
|
48
|
+
return this.safeName;
|
|
49
|
+
}
|
|
50
|
+
get asClassName() {
|
|
51
|
+
return this.asJsIdentifier[0].toUpperCase() + this.asJsIdentifier.slice(1);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
__decorate([
|
|
55
|
+
src_1.Memoize(),
|
|
56
|
+
__metadata("design:type", Function),
|
|
57
|
+
__metadata("design:paramtypes", []),
|
|
58
|
+
__metadata("design:returntype", Boolean)
|
|
59
|
+
], NodeName.prototype, "isReserved", null);
|
|
60
|
+
__decorate([
|
|
61
|
+
src_1.Memoize(),
|
|
62
|
+
__metadata("design:type", String),
|
|
63
|
+
__metadata("design:paramtypes", [])
|
|
64
|
+
], NodeName.prototype, "safeName", null);
|
|
65
|
+
__decorate([
|
|
66
|
+
src_1.Memoize(),
|
|
67
|
+
__metadata("design:type", String),
|
|
68
|
+
__metadata("design:paramtypes", [])
|
|
69
|
+
], NodeName.prototype, "asJsIdentifier", null);
|
|
70
|
+
__decorate([
|
|
71
|
+
src_1.Memoize(),
|
|
72
|
+
__metadata("design:type", String),
|
|
73
|
+
__metadata("design:paramtypes", [])
|
|
74
|
+
], NodeName.prototype, "asClassName", null);
|
|
75
|
+
exports.NodeName = NodeName;
|
|
76
|
+
(function (NodeName) {
|
|
77
|
+
const CUSTOM_TYPE_NAME_REGEX = /^([^\(]*)\(([^\[)]*)(\[\])?\)\s*$/;
|
|
78
|
+
function parse(name) {
|
|
79
|
+
const match = CUSTOM_TYPE_NAME_REGEX.exec(name);
|
|
80
|
+
if (match) {
|
|
81
|
+
// console.log(match);
|
|
82
|
+
return new NodeName(match[1], match[2], !!match[3]);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return new NodeName(name);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
NodeName.parse = parse;
|
|
89
|
+
})(NodeName = exports.NodeName || (exports.NodeName = {}));
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZU5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL25vZGVOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBFQUEyRTtBQUMzRSwwQ0FBNEI7QUFDNUIsb0RBQXVCO0FBRXZCLFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxJQUFZO0lBQzVCLE9BQU8sZ0JBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQWEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVwRSxNQUFhLFFBQVE7SUFFbkIsWUFBb0IsSUFBWSxFQUNYLGNBQXVCLEVBQ3ZCLE9BQWlCO1FBRmxCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWCxtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFVO0lBQ3RDLENBQUM7SUFHRCxVQUFVO1FBQ1IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1YsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0UsNkJBQTZCO1FBQzdCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFHRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztDQUVGO0FBdEJDO0lBREMsYUFBTyxFQUFFOzs7OzBDQUdUO0FBR0Q7SUFEQyxhQUFPLEVBQUU7Ozt3Q0FNVDtBQUdEO0lBREMsYUFBTyxFQUFFOzs7OENBR1Q7QUFHRDtJQURDLGFBQU8sRUFBRTs7OzJDQUdUO0FBNUJILDRCQThCQztBQUVELFdBQWlCLFFBQVE7SUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxtQ0FBbUMsQ0FBQztJQUVuRSxTQUFnQixLQUFLLENBQUMsSUFBWTtRQUNoQyxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxzQkFBc0I7WUFDdEIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFSZSxjQUFLLFFBUXBCLENBQUE7QUFDSCxDQUFDLEVBWmdCLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBWXhCIn0=
|
|
@@ -2,6 +2,7 @@ import { Module } from './ast/moduleDef.class';
|
|
|
2
2
|
import { I18nNode, NodeConstructor } from './i18nNode.class';
|
|
3
3
|
export declare class RootNode extends I18nNode {
|
|
4
4
|
private _nodeTypes;
|
|
5
|
+
private readonly customTypesImports;
|
|
5
6
|
constructor();
|
|
6
7
|
registerNodeTypes(nodeTypes: NodeConstructor<any>[]): void;
|
|
7
8
|
nodeTypes(): NodeConstructor<any>[];
|
|
@@ -10,5 +11,13 @@ export declare class RootNode extends I18nNode {
|
|
|
10
11
|
/*********
|
|
11
12
|
*
|
|
12
13
|
********/
|
|
13
|
-
|
|
14
|
+
generateApi(module: Module): void;
|
|
15
|
+
/*********
|
|
16
|
+
*
|
|
17
|
+
********/
|
|
18
|
+
generateMessageBundle(object: {}): void;
|
|
19
|
+
registerCustomType(customType: {
|
|
20
|
+
typeName: string;
|
|
21
|
+
importDeclaration: string;
|
|
22
|
+
}): void;
|
|
14
23
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const arguments_class_1 = require("./arguments.class");
|
|
3
4
|
const i18nNode_class_1 = require("./i18nNode.class");
|
|
5
|
+
const nodeName_1 = require("./nodeName");
|
|
4
6
|
class RootNode extends i18nNode_class_1.I18nNode {
|
|
5
7
|
constructor() {
|
|
6
|
-
super(null, '');
|
|
8
|
+
super(null, new nodeName_1.NodeName(''));
|
|
7
9
|
this._nodeTypes = [];
|
|
10
|
+
this.customTypesImports = new Map();
|
|
8
11
|
}
|
|
9
12
|
registerNodeTypes(nodeTypes) {
|
|
10
13
|
this._nodeTypes = nodeTypes;
|
|
@@ -14,7 +17,7 @@ class RootNode extends i18nNode_class_1.I18nNode {
|
|
|
14
17
|
}
|
|
15
18
|
parse(yamlData) {
|
|
16
19
|
this.withEachProperty(yamlData, (name, data) => {
|
|
17
|
-
const node = this.getOrCreatNode(name, this.computeNodeTypeOf(data));
|
|
20
|
+
const node = this.getOrCreatNode(name, this.computeNodeTypeOf(name, data));
|
|
18
21
|
node.parse(data);
|
|
19
22
|
});
|
|
20
23
|
}
|
|
@@ -24,20 +27,56 @@ class RootNode extends i18nNode_class_1.I18nNode {
|
|
|
24
27
|
/*********
|
|
25
28
|
*
|
|
26
29
|
********/
|
|
27
|
-
|
|
30
|
+
generateApi(module) {
|
|
28
31
|
module.addHeader(`/******** IMPORTANT *********`);
|
|
29
32
|
module.addHeader(` * `);
|
|
30
33
|
module.addHeader(` * This file is automatically generated. Any edits will be lost.`);
|
|
31
34
|
module.addHeader(` * `);
|
|
32
35
|
module.addHeader(' ****/');
|
|
33
36
|
module.addHeader('/* tslint:disable:no-shadowed-variable */');
|
|
34
|
-
module.addImport(`import
|
|
37
|
+
module.addImport(`import MessageFormat from 'message-format'`);
|
|
38
|
+
this.customTypesImports.forEach((importDeclaration, className) => {
|
|
39
|
+
module.addImport(importDeclaration);
|
|
40
|
+
});
|
|
41
|
+
module.addImport('import defaultBundle from \'./locales/en.json\'');
|
|
35
42
|
module.nestedContainer('I18n', namespace => {
|
|
43
|
+
namespace.createStatement('let _locale = "en"');
|
|
44
|
+
namespace.createStatement('let _activeBundle:any = null');
|
|
45
|
+
namespace.createStatement('const _bundles = new Map<string,any>()');
|
|
46
|
+
const args = arguments_class_1.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('setLanguage', arguments_class_1.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('getAvailableLanguages', arguments_class_1.Arguments.empty(), 'string[]', writer => {
|
|
60
|
+
writer.println(`return Array.from(_bundles.keys())`);
|
|
61
|
+
});
|
|
62
|
+
namespace.createStatement('registerBundle("en", defaultBundle)');
|
|
63
|
+
namespace.createStatement('setLanguage("en")');
|
|
36
64
|
this.eachChild(child => {
|
|
37
|
-
child.
|
|
65
|
+
child.generateApi(namespace);
|
|
38
66
|
});
|
|
39
67
|
});
|
|
40
68
|
}
|
|
69
|
+
/*********
|
|
70
|
+
*
|
|
71
|
+
********/
|
|
72
|
+
generateMessageBundle(object) {
|
|
73
|
+
this.eachChild(child => {
|
|
74
|
+
child.generateMessageBundle(object);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
registerCustomType(customType) {
|
|
78
|
+
this.customTypesImports.set(customType.typeName, customType.importDeclaration);
|
|
79
|
+
}
|
|
41
80
|
}
|
|
42
81
|
exports.RootNode = RootNode;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Jvb3ROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQThDO0FBRzlDLHFEQUE2RDtBQUM3RCx5Q0FBc0M7QUFFdEMsTUFBYSxRQUFTLFNBQVEseUJBQVE7SUFLcEM7UUFDRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksbUJBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSnhCLGVBQVUsR0FBMkIsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBSWhFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFpQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWE7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQWMsRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFtQjtRQUNuQyxRQUFRO0lBQ1YsQ0FBQztJQUVEOztjQUVVO0lBQ1YsV0FBVyxDQUFDLE1BQWM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNB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
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { ContainerElement } from './ast/containerElement.class';
|
|
1
2
|
import { I18nNode } from './i18nNode.class';
|
|
2
|
-
import {
|
|
3
|
+
import { NodeName } from './nodeName';
|
|
3
4
|
export declare class TextArrayNode extends I18nNode {
|
|
4
5
|
private args;
|
|
5
|
-
static matches(yamlData: any): boolean;
|
|
6
|
+
static matches(name: NodeName, yamlData: any): boolean;
|
|
6
7
|
parse(data: any): void;
|
|
7
|
-
|
|
8
|
+
generateApi(container: ContainerElement): void;
|
|
8
9
|
createFunctionBody(out: any): void;
|
|
9
10
|
}
|
|
@@ -9,21 +9,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
const _ = __importStar(require("lodash"));
|
|
11
11
|
const i18nNode_class_1 = require("./i18nNode.class");
|
|
12
|
+
const nodeName_1 = require("./nodeName");
|
|
12
13
|
const textNode_class_1 = require("./textNode.class");
|
|
13
14
|
class TextArrayNode extends i18nNode_class_1.I18nNode {
|
|
14
|
-
static matches(yamlData) {
|
|
15
|
+
static matches(name, yamlData) {
|
|
15
16
|
return _.isArray(yamlData) && _.reject(yamlData, entry => _.isString(entry)).length == 0;
|
|
16
17
|
}
|
|
17
18
|
parse(data) {
|
|
18
19
|
data.forEach((text, index) => {
|
|
19
|
-
this.
|
|
20
|
+
this.parseChild(nodeName_1.NodeName.parse(`line_${index + 1}`), text, textNode_class_1.TextNode);
|
|
20
21
|
});
|
|
21
22
|
this.eachChild(child => {
|
|
22
23
|
this.getArgs().merge(child.getArgs());
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
container.createFunction(this.
|
|
26
|
+
generateApi(container) {
|
|
27
|
+
container.createFunction(this.name.asJsIdentifier, this.getArgs(), 'string[]', out => {
|
|
27
28
|
this.createFunctionBody(out);
|
|
28
29
|
});
|
|
29
30
|
}
|
|
@@ -45,4 +46,4 @@ class TextArrayNode extends i18nNode_class_1.I18nNode {
|
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
exports.TextArrayNode = TextArrayNode;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dEFycmF5Tm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdGV4dEFycmF5Tm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQ0FBNEI7QUFHNUIscURBQTRDO0FBQzVDLHlDQUFzQztBQUN0QyxxREFBNEM7QUFFNUMsTUFBYSxhQUFjLFNBQVEseUJBQVE7SUFJekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVM7UUFDWixJQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLHlCQUFRLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBMkI7UUFDckMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ25GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFHO1FBQ3BCLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUN4QixHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDN0Q7cUJBQU07b0JBQ0wsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDN0I7Z0JBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLElBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBRUY7QUF2Q0Qsc0NBdUNDIn0=
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Arg } from './arg.class';
|
|
2
2
|
import { ContainerElement } from './ast/containerElement.class';
|
|
3
3
|
import { I18nNode } from './i18nNode.class';
|
|
4
|
+
import { NodeName } from './nodeName';
|
|
4
5
|
export declare class TextNode extends I18nNode {
|
|
5
6
|
private text;
|
|
6
7
|
private messageSchema;
|
|
7
|
-
static matches(yamlData: any): boolean;
|
|
8
|
+
static matches(name: NodeName, yamlData: any): boolean;
|
|
8
9
|
parse(data: any): void;
|
|
9
|
-
|
|
10
|
+
generateApi(container: ContainerElement): void;
|
|
11
|
+
generateMessageBundle(parent: object): void;
|
|
10
12
|
createFunctionBody(out: any): void;
|
|
11
13
|
valueString(value: any): string;
|
|
12
14
|
protected scanContainer(elements: Element[]): void;
|
|
@@ -23,7 +23,7 @@ const i18nNode_class_1 = require("./i18nNode.class");
|
|
|
23
23
|
// ["<argName>", "<argFormat>", {option_a: <message_container>, option_b: <message_container>, other: <messsage_container>] for argFormat == select, plural
|
|
24
24
|
//
|
|
25
25
|
class TextNode extends i18nNode_class_1.I18nNode {
|
|
26
|
-
static matches(yamlData) {
|
|
26
|
+
static matches(name, yamlData) {
|
|
27
27
|
return _.isString(yamlData);
|
|
28
28
|
}
|
|
29
29
|
parse(data) {
|
|
@@ -36,25 +36,21 @@ class TextNode extends i18nNode_class_1.I18nNode {
|
|
|
36
36
|
throw new Error(`Invalid message format ${this.key}=${data} -> ${e.message}`);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
generateApi(container) {
|
|
40
40
|
// TODO: Make this take the args as an interface so callers use it like I18n.hello({name: 'World'}) with type safety.
|
|
41
|
-
container.createFunction(this.
|
|
41
|
+
container.createFunction(this.name.asJsIdentifier, this.getArgs(), 'string', out => {
|
|
42
42
|
this.createFunctionBody(out);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
generateMessageBundle(parent) {
|
|
46
|
+
parent[this.name.asJsIdentifier] = this.text;
|
|
47
|
+
}
|
|
45
48
|
createFunctionBody(out) {
|
|
46
|
-
// const id = this.pathToRoot().slice(1).map(a => a.name).join('_');
|
|
47
49
|
if (this.getArgs().any()) {
|
|
48
|
-
out.println(`return
|
|
49
|
-
id: '${this.key}',
|
|
50
|
-
default: ${this.valueString(this.text)},
|
|
51
|
-
}, ${this.getArgs().asArgsObject()})`);
|
|
50
|
+
out.println(`return new MessageFormat(_locale, _activeBundle.${this.key}).format(${this.getArgs().asArgsObject()});`);
|
|
52
51
|
}
|
|
53
52
|
else {
|
|
54
|
-
out.println(`return
|
|
55
|
-
id: '${this.key}',
|
|
56
|
-
default: ${this.valueString(this.text)},
|
|
57
|
-
})`);
|
|
53
|
+
out.println(`return _activeBundle.${this.key};`);
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
56
|
valueString(value) {
|
|
@@ -121,4 +117,4 @@ class TextNode extends i18nNode_class_1.I18nNode {
|
|
|
121
117
|
}
|
|
122
118
|
}
|
|
123
119
|
exports.TextNode = TextNode;
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RleHROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGdGQUFzRDtBQUN0RCwwQ0FBNEI7QUFDNUIsMkNBQWtDO0FBR2xDLHFEQUE0QztBQUc1QyxpRUFBaUU7QUFDakUsZ0RBQWdEO0FBQ2hELHVCQUF1QjtBQUN2QixzQkFBc0I7QUFDdEIscUNBQXFDO0FBQ3JDLHVGQUF1RjtBQUN2Riw4SkFBOEo7QUFDOUosRUFBRTtBQUdGLE1BQWEsUUFBUyxTQUFRLHlCQUFRO0lBS3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBUztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBYyxDQUFDO1FBQzNCLElBQUk7WUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLDhCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUN4QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQTJCO1FBQ3JDLHFIQUFxSDtRQUNySCxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdB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
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { ContainerElement } from './ast/containerElement.class';
|
|
1
2
|
import { I18nNode } from './i18nNode.class';
|
|
2
|
-
import {
|
|
3
|
+
import { NodeName } from './nodeName';
|
|
3
4
|
export declare class ValueNode extends I18nNode {
|
|
4
5
|
private data;
|
|
5
|
-
static matches(yamlData: any): boolean;
|
|
6
|
+
static matches(name: NodeName, yamlData: any): boolean;
|
|
6
7
|
static isValue(thing: any): boolean;
|
|
7
8
|
parse(data: any): void;
|
|
8
|
-
|
|
9
|
+
generateApi(out: ContainerElement): void;
|
|
9
10
|
returnType(): string;
|
|
10
|
-
valueType(value: any):
|
|
11
|
+
valueType(value: any): string;
|
|
11
12
|
valueString(value: any): string;
|
|
12
13
|
}
|
|
@@ -8,10 +8,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
const _ = __importStar(require("lodash"));
|
|
11
|
-
const i18nNode_class_1 = require("./i18nNode.class");
|
|
12
11
|
const arguments_class_1 = require("./arguments.class");
|
|
12
|
+
const i18nNode_class_1 = require("./i18nNode.class");
|
|
13
13
|
class ValueNode extends i18nNode_class_1.I18nNode {
|
|
14
|
-
static matches(yamlData) {
|
|
14
|
+
static matches(name, yamlData) {
|
|
15
15
|
return this.isValue(yamlData) || (_.isArray(yamlData) && _.reject(yamlData, entry => this.isValue(entry)).length == 0);
|
|
16
16
|
}
|
|
17
17
|
static isValue(thing) {
|
|
@@ -23,8 +23,8 @@ class ValueNode extends i18nNode_class_1.I18nNode {
|
|
|
23
23
|
parse(data) {
|
|
24
24
|
this.data = data;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
out.createFunction(this.
|
|
26
|
+
generateApi(out) {
|
|
27
|
+
out.createFunction(this.name.asJsIdentifier, arguments_class_1.Arguments.empty(), this.returnType(), out => {
|
|
28
28
|
if (_.isArray(this.data)) {
|
|
29
29
|
out.println(` return [${this.data.map(d => this.valueString(d)).join(', ')}];`);
|
|
30
30
|
}
|
|
@@ -44,4 +44,4 @@ class ValueNode extends i18nNode_class_1.I18nNode {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.ValueNode = ValueNode;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVOb2RlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi92YWx1ZU5vZGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLHVEQUE4QztBQUc5QyxxREFBNEM7QUFHNUMsTUFBYSxTQUFVLFNBQVEseUJBQVE7SUFHckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFjLEVBQUUsUUFBYTtRQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6SCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxxQkFBcUI7SUFDckIsSUFBSTtJQUVKLEtBQUssQ0FBQyxJQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFxQjtRQUUvQixHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLDJCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25GO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVU7UUFDbEIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXpDRCw4QkF5Q0MifQ==
|