@coolon/i18n-resource-generator 2.1.0 → 3.0.1
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 +25 -0
- package/build/main/lib/bin/cli.js +12 -30
- package/build/main/lib/i18nGenerator.d.ts +6 -4
- package/build/main/lib/i18nGenerator.js +64 -49
- package/build/main/lib/i18nNode.class.d.ts +3 -1
- package/build/main/lib/i18nNode.class.js +18 -2
- package/build/main/lib/namespaceNode.class.js +1 -1
- package/build/main/lib/nodeName.d.ts +2 -2
- package/build/main/lib/nodeName.js +14 -9
- package/build/main/lib/rootNode.class.d.ts +0 -1
- package/build/main/lib/rootNode.class.js +1 -7
- package/build/module/lib/bin/cli.js +12 -30
- package/build/module/lib/i18nGenerator.d.ts +6 -4
- package/build/module/lib/i18nGenerator.js +61 -49
- package/build/module/lib/i18nNode.class.d.ts +3 -1
- package/build/module/lib/i18nNode.class.js +15 -2
- package/build/module/lib/namespaceNode.class.js +1 -1
- package/build/module/lib/nodeName.d.ts +2 -2
- package/build/module/lib/nodeName.js +14 -9
- package/build/module/lib/rootNode.class.d.ts +0 -1
- package/build/module/lib/rootNode.class.js +1 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
<a name="3.0.1"></a>
|
|
6
|
+
## [3.0.1](https://github.com/YOUR_GITHUB_USER_NAME/i18n-resource-generator/compare/v3.0.0...v3.0.1) (2021-04-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* renamed config file to i18n.config.json to identify clearly ([56f2648](https://github.com/YOUR_GITHUB_USER_NAME/i18n-resource-generator/commit/56f2648))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<a name="3.0.0"></a>
|
|
16
|
+
# [3.0.0](https://github.com/YOUR_GITHUB_USER_NAME/i18n-resource-generator/compare/v2.1.0...v3.0.0) (2021-04-01)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* auto namespace generation from directory structure ([cfecd4b](https://github.com/YOUR_GITHUB_USER_NAME/i18n-resource-generator/commit/cfecd4b))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* The generator will now automatically inject namespaces from the director structure.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
5
30
|
<a name="2.1.0"></a>
|
|
6
31
|
# [2.1.0](https://github.com/YOUR_GITHUB_USER_NAME/i18n-resource-generator/compare/v2.0.15...v2.1.0) (2021-03-06)
|
|
7
32
|
|
|
@@ -14,7 +14,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
const typescript_utilities_1 = require("@coolon/typescript-utilities");
|
|
15
15
|
const commander_1 = __importDefault(require("commander"));
|
|
16
16
|
const fs = __importStar(require("fs"));
|
|
17
|
-
const glob_1 = __importDefault(require("glob"));
|
|
18
17
|
const i18nGenerator_1 = require("../i18nGenerator");
|
|
19
18
|
let srcDir;
|
|
20
19
|
let outDir;
|
|
@@ -42,44 +41,27 @@ let localeDir = `${outDir}/locales`;
|
|
|
42
41
|
if (!fs.existsSync(localeDir)) {
|
|
43
42
|
fs.mkdirSync(localeDir);
|
|
44
43
|
}
|
|
45
|
-
const configFile = `${srcDir}/config.json`;
|
|
46
|
-
let
|
|
44
|
+
const configFile = `${srcDir}/i18n.config.json`;
|
|
45
|
+
let rootNamespaceClassName = 'I18n';
|
|
47
46
|
let imports;
|
|
48
47
|
if (fs.existsSync(configFile)) {
|
|
49
48
|
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
|
|
50
|
-
|
|
49
|
+
rootNamespaceClassName = config['class'] || rootNamespaceClassName;
|
|
51
50
|
imports = config['customTypeImports'] || [];
|
|
52
51
|
}
|
|
53
|
-
const gen = new i18nGenerator_1.I18nGenerator(
|
|
52
|
+
const gen = new i18nGenerator_1.I18nGenerator(rootNamespaceClassName);
|
|
54
53
|
for (let key in imports) {
|
|
55
54
|
console.log(`registering import: ${key} --> ${imports[key]}`);
|
|
56
55
|
gen.registerType(key, imports[key]);
|
|
57
56
|
}
|
|
58
57
|
const defaultBundleFile = `${outDir}/locales/en.json`;
|
|
59
58
|
const defaultKeysBundleFile = `${outDir}/locales/message-keys.json`;
|
|
60
|
-
const apiFile = `${outDir}/${typescript_utilities_1.Stringy.from(
|
|
61
|
-
|
|
62
|
-
console.log(`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// er is an error object or null.
|
|
68
|
-
if (error) {
|
|
69
|
-
console.error(error);
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
if (files.length < 1) {
|
|
73
|
-
console.log('no files found.');
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
files.forEach(f => {
|
|
77
|
-
gen.readFile(f);
|
|
78
|
-
});
|
|
79
|
-
console.log(`Writing to -> ${apiFile}`);
|
|
80
|
-
fs.writeFileSync(apiFile, gen.getApiContent());
|
|
81
|
-
fs.writeFileSync(defaultBundleFile, gen.getDefaultBundleContent('text'));
|
|
82
|
-
fs.writeFileSync(defaultKeysBundleFile, gen.getDefaultBundleContent('keys'));
|
|
83
|
-
}
|
|
59
|
+
const apiFile = `${outDir}/${typescript_utilities_1.Stringy.from(rootNamespaceClassName).dasherize().toString()}.ts`;
|
|
60
|
+
gen.scanDirectory(srcDir).then(() => {
|
|
61
|
+
// console.log(`Writing to -> ${apiFile}`, gen.getApiContent());
|
|
62
|
+
console.log(`Writing to -> ${apiFile}`);
|
|
63
|
+
fs.writeFileSync(apiFile, gen.getApiContent());
|
|
64
|
+
fs.writeFileSync(defaultBundleFile, gen.getDefaultBundleContent('text'));
|
|
65
|
+
fs.writeFileSync(defaultKeysBundleFile, gen.getDefaultBundleContent('keys'));
|
|
84
66
|
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9iaW4vY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSx1RUFBdUQ7QUFDdkQsMERBQWdDO0FBQ2hDLHVDQUF5QjtBQUN6QixvREFBaUQ7QUFFakQsSUFBSSxNQUFNLENBQUM7QUFDWCxJQUFJLE1BQU0sQ0FBQztBQUVYLG1CQUFPO0tBQ0osSUFBSSxDQUFDLHlCQUF5QixDQUFDO0tBQy9CLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDaEIsU0FBUyxDQUFDLHlCQUF5QixDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxVQUFTLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVTtJQUMvQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ25CLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0tBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV2QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQjtBQUVELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO0lBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pCO0FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7SUFDMUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUN0QjtBQUNELElBQUksU0FBUyxHQUFHLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDN0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztDQUN6QjtBQUdELE1BQU0sVUFBVSxHQUFHLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxJQUFJLHNCQUFzQixHQUFXLE1BQU0sQ0FBQztBQUM1QyxJQUFJLE9BQWtDLENBQUM7QUFFdkMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRCxzQkFBc0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksc0JBQXNCLENBQUM7SUFDbkUsT0FBTyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztDQUM3QztBQUVELE1BQU0sR0FBRyxHQUFHLElBQUksNkJBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RELEtBQUssSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0NBQ3JDO0FBR0QsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxNQUFNLElBQUksOEJBQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO0FBQzlGLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtJQUNsQyxnRUFBZ0U7SUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4QyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvQyxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { I18nNode } from './i18nNode.class';
|
|
2
|
+
import { NodeName } from './nodeName';
|
|
1
3
|
export declare class I18nGenerator {
|
|
2
4
|
private rootNode;
|
|
3
|
-
|
|
4
|
-
private _schema;
|
|
5
|
-
constructor(rootNamespace: string);
|
|
5
|
+
constructor(rootNamespaceClassName: string);
|
|
6
6
|
registerType(typeName: string, importDeclaration: string): void;
|
|
7
|
-
|
|
7
|
+
scanDirectory(srcDir: string): Promise<void>;
|
|
8
|
+
prepareNameSpaceNode(namespacePath: NodeName[]): I18nNode;
|
|
9
|
+
private prepareNamespacePath;
|
|
8
10
|
getApiContent(): string;
|
|
9
11
|
getDefaultBundleContent(include: 'keys' | 'text'): string;
|
|
10
12
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
6
|
if (mod && mod.__esModule) return mod;
|
|
4
7
|
var result = {};
|
|
@@ -8,57 +11,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
8
11
|
};
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
13
|
/* tslint:disable */
|
|
11
|
-
const
|
|
12
|
-
const
|
|
14
|
+
const glob_1 = __importDefault(require("glob"));
|
|
15
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
16
|
+
const path = __importStar(require("path"));
|
|
13
17
|
const moduleDef_class_1 = require("./ast/moduleDef.class");
|
|
14
18
|
const customTypeArrayNode_class_1 = require("./customTypeArrayNode.class");
|
|
15
19
|
const customTypeNode_class_1 = require("./customTypeNode.class");
|
|
16
20
|
const enumNode_class_1 = require("./enumNode.class");
|
|
17
21
|
const namespaceNode_class_1 = require("./namespaceNode.class");
|
|
22
|
+
const nodeName_1 = require("./nodeName");
|
|
18
23
|
const rootNode_class_1 = require("./rootNode.class");
|
|
19
24
|
const textArrayNode_class_1 = require("./textArrayNode.class");
|
|
20
25
|
const textNode_class_1 = require("./textNode.class");
|
|
21
26
|
const valueNode_class_1 = require("./valueNode.class");
|
|
22
27
|
const writer_class_1 = require("./writer.class");
|
|
23
|
-
// TODO: use factories
|
|
24
|
-
// interface NodeFactory<T extends Node> {
|
|
25
|
-
// matches(data:any):boolean;
|
|
26
|
-
// create(name:string, data:any):T;
|
|
27
|
-
// }
|
|
28
|
-
//
|
|
29
|
-
// class EnumResourceContainer {
|
|
30
|
-
// constructor(public readonly content: any) {
|
|
31
|
-
// }
|
|
32
|
-
// }
|
|
33
|
-
//
|
|
34
|
-
// class CustomTypeContainer {
|
|
35
|
-
// constructor(public readonly customType: NodeName, public readonly content: any) {
|
|
36
|
-
// }
|
|
37
|
-
// }
|
|
38
|
-
//
|
|
39
|
-
// class CustomTypeArrayContainer {
|
|
40
|
-
// constructor(public readonly customType: NodeName, public readonly content: any) {
|
|
41
|
-
// }
|
|
42
|
-
// }
|
|
43
|
-
// TODO: merge this with nodes, so nodes become a type, not sure if this will be easy to do or not as
|
|
44
|
-
// we don't have the key name at this point. Might have to put it all in the factory so it can be called
|
|
45
|
-
// to embed a marker in the data and use that when checking the node type.
|
|
46
|
-
// const EnumResourceType = new yaml.Type('!Enum', {
|
|
47
|
-
// kind: 'mapping',
|
|
48
|
-
// construct: function (data) {
|
|
49
|
-
// data = data || {}; // in case of empty node
|
|
50
|
-
// return new EnumResourceContainer(data);
|
|
51
|
-
// },
|
|
52
|
-
// instanceOf: EnumResourceContainer
|
|
53
|
-
// // `represent` is omitted here. So, Space objects will be dumped as is.
|
|
54
|
-
// // That is regular mapping with three key-value pairs but with !space tag.
|
|
55
|
-
// });
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
// TODO: replace custom gulp task with https://www.npmjs.com/package/gulp-reduce-file
|
|
59
28
|
class I18nGenerator {
|
|
60
|
-
constructor(
|
|
61
|
-
this.rootNode = new rootNode_class_1.RootNode(
|
|
29
|
+
constructor(rootNamespaceClassName) {
|
|
30
|
+
this.rootNode = new rootNode_class_1.RootNode(rootNamespaceClassName);
|
|
62
31
|
this.rootNode.registerNodeTypes([
|
|
63
32
|
enumNode_class_1.EnumNode, customTypeArrayNode_class_1.CustomTypeArrayNode, customTypeNode_class_1.CustomTypeNode, textNode_class_1.TextNode, textArrayNode_class_1.TextArrayNode, valueNode_class_1.ValueNode, namespaceNode_class_1.NameSpaceNode
|
|
64
33
|
]);
|
|
@@ -66,15 +35,61 @@ class I18nGenerator {
|
|
|
66
35
|
registerType(typeName, importDeclaration) {
|
|
67
36
|
this.rootNode.registerCustomType({ typeName, importDeclaration });
|
|
68
37
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
38
|
+
scanDirectory(srcDir) {
|
|
39
|
+
const self = this;
|
|
40
|
+
const pattern = `${srcDir}/**/*i18n.yml`;
|
|
41
|
+
console.log(`Scanning -> ${pattern}`);
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
glob_1.default(pattern, {}, function (error, files) {
|
|
44
|
+
// files is an array of filenames.
|
|
45
|
+
// If the `nonull` option is set, and nothing
|
|
46
|
+
// was found, then files is ["**/*.js"]
|
|
47
|
+
// er is an error object or null.
|
|
48
|
+
if (error) {
|
|
49
|
+
console.error(error);
|
|
50
|
+
reject(error);
|
|
51
|
+
}
|
|
52
|
+
if (files.length < 1) {
|
|
53
|
+
console.log('no files found.');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
files.forEach(f => {
|
|
57
|
+
const relativePath = f.substr(1 + srcDir.length);
|
|
58
|
+
try {
|
|
59
|
+
const namespacePath = self.prepareNamespacePath(relativePath);
|
|
60
|
+
self.prepareNameSpaceNode(namespacePath).parseFile(f);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
console.log(error);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
resolve();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
prepareNameSpaceNode(namespacePath) {
|
|
72
|
+
return namespacePath.reduce((ns, namespaceName) => {
|
|
73
|
+
return ns.getOrCreatNode(namespaceName, namespaceNode_class_1.NameSpaceNode);
|
|
74
|
+
}, this.rootNode);
|
|
75
|
+
}
|
|
76
|
+
prepareNamespacePath(relativeFileName) {
|
|
77
|
+
const fileInfo = path.parse(relativeFileName);
|
|
78
|
+
const dirParts = fileInfo.dir.substr(fileInfo.root.length)
|
|
79
|
+
.split(path.sep)
|
|
80
|
+
.filter(name => !lodash_1.default.isEmpty(name));
|
|
81
|
+
if (fileInfo.name === "i18n" && dirParts.length < 1) {
|
|
82
|
+
throw new Error(`error can't process ${relativeFileName}. I18n files in the root directory must have a prefix. e.g. my-file.i18n.yml`);
|
|
75
83
|
}
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
else {
|
|
85
|
+
const fileNamespaceName = fileInfo.name.replace('.i18n', '');
|
|
86
|
+
// Angular typically has component file names with the same name as the parent directory
|
|
87
|
+
// so we check for that to avoid duplicated child namespace names.
|
|
88
|
+
// And if the i18n file is named i18n.yml then we put it in the parent namespace.
|
|
89
|
+
const parts = lodash_1.default.last(dirParts) === fileNamespaceName || fileNamespaceName === "i18n" ?
|
|
90
|
+
dirParts :
|
|
91
|
+
dirParts.concat(fileNamespaceName);
|
|
92
|
+
return parts.map(name => nodeName_1.NodeName.parse(name));
|
|
78
93
|
}
|
|
79
94
|
}
|
|
80
95
|
getApiContent() {
|
|
@@ -91,4 +106,4 @@ class I18nGenerator {
|
|
|
91
106
|
}
|
|
92
107
|
}
|
|
93
108
|
exports.I18nGenerator = I18nGenerator;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLG9EQUF1QjtBQUN2QiwyQ0FBNkI7QUFDN0IsMkRBQStDO0FBQy9DLDJFQUFrRTtBQUNsRSxpRUFBd0Q7QUFFeEQscURBQTRDO0FBRTVDLCtEQUFzRDtBQUN0RCx5Q0FBc0M7QUFDdEMscURBQTRDO0FBQzVDLCtEQUFzRDtBQUN0RCxxREFBNEM7QUFDNUMsdURBQThDO0FBQzlDLGlEQUE0QztBQUc1QyxNQUFhLGFBQWE7SUFJeEIsWUFBWSxzQkFBOEI7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHlCQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzlCLHlCQUFRLEVBQUUsK0NBQW1CLEVBQUUscUNBQWMsRUFBRSx5QkFBUSxFQUFFLG1DQUFhLEVBQUUsMkJBQVMsRUFBRSxtQ0FBYTtTQUNqRyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCLEVBQUUsaUJBQXlCO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxNQUFNLGVBQWUsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksT0FBTyxDQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBRWhELGNBQUksQ0FB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Constructable } from '@coolon/typescript-utilities';
|
|
1
2
|
import { Arguments } from './arguments.class';
|
|
2
3
|
import { ContainerElement } from './ast/containerElement.class';
|
|
3
4
|
import { Constructor } from './constructor.class';
|
|
@@ -23,9 +24,10 @@ export declare class I18nNode {
|
|
|
23
24
|
appendNamespaceTo(collector: string[]): void;
|
|
24
25
|
isRoot(): boolean;
|
|
25
26
|
pathToRoot(): I18nNode[];
|
|
27
|
+
parseFile(fileName: string): void;
|
|
26
28
|
parse(yamlData: any): void;
|
|
27
29
|
protected parseChild<T extends I18nNode>(name: NodeName, data: any, defaultNodeType: Constructor<T>): I18nNode;
|
|
28
|
-
getOrCreatNode(name: NodeName, type:
|
|
30
|
+
getOrCreatNode<T extends I18nNode>(name: NodeName, type: Constructable<T>): T;
|
|
29
31
|
rootNode(): RootNode;
|
|
30
32
|
nodeTypes(): NodeConstructor<any>[];
|
|
31
33
|
protected computeNodeTypeOf(name: NodeName, data: any): NodeConstructor<any>;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
6
|
if (mod && mod.__esModule) return mod;
|
|
4
7
|
var result = {};
|
|
@@ -7,6 +10,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
7
10
|
return result;
|
|
8
11
|
};
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
const yaml = __importStar(require("js-yaml"));
|
|
10
15
|
const _ = __importStar(require("lodash"));
|
|
11
16
|
const arguments_class_1 = require("./arguments.class");
|
|
12
17
|
const nodeName_1 = require("./nodeName");
|
|
@@ -37,6 +42,17 @@ class I18nNode {
|
|
|
37
42
|
pathToRoot() {
|
|
38
43
|
return this.isRoot() ? [this] : this.parent.pathToRoot().concat(this);
|
|
39
44
|
}
|
|
45
|
+
parseFile(fileName) {
|
|
46
|
+
// let options = {schema: this.getSchema()};
|
|
47
|
+
console.log(`Loading: ${fileName}`);
|
|
48
|
+
const yamlData = yaml.safeLoad(fs_1.default.readFileSync(fileName, 'utf8'));
|
|
49
|
+
try {
|
|
50
|
+
this.parse(yamlData);
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw new Error(`Failed to parse file:${fileName}\n-> ${e.message}\n-> ${e.stack}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
40
56
|
parse(yamlData) {
|
|
41
57
|
this.withEachProperty(yamlData, (name, data) => {
|
|
42
58
|
this.parseChild(name, data, this.computeNodeTypeOf(name, data));
|
|
@@ -86,7 +102,7 @@ class I18nNode {
|
|
|
86
102
|
Object.getOwnPropertyNames(yamlData).forEach(unsafeKey => {
|
|
87
103
|
const name = nodeName_1.NodeName.parse(unsafeKey);
|
|
88
104
|
if (name.isReserved()) {
|
|
89
|
-
console.log(`Warning: Yaml key '${unsafeKey}'
|
|
105
|
+
console.log(`Warning: Yaml key '${unsafeKey}' is a reserved word, converting to '${name.safeName}'`);
|
|
90
106
|
}
|
|
91
107
|
cb(name, yamlData[unsafeKey]);
|
|
92
108
|
});
|
|
@@ -151,4 +167,4 @@ class I18nNode {
|
|
|
151
167
|
}
|
|
152
168
|
}
|
|
153
169
|
exports.I18nNode = I18nNode;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bk5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2kxOG5Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLDRDQUFvQjtBQUNwQiw4Q0FBZ0M7QUFDaEMsMENBQTRCO0FBSTVCLHVEQUE4QztBQUc5Qyx5Q0FBc0M7QUFXdEMsTUFBYSxRQUFRO0lBS25CLFlBQXNCLE1BQWdCLEVBQWtCLElBQWM7UUFBaEQsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFrQixTQUFJLEdBQUosSUFBSSxDQUFVO1FBSDlELGVBQVUsR0FBMEIsSUFBSSxHQUFHLEVBQW9CLENBQUM7UUFDaEUsaUJBQVksR0FBYyxJQUFJLDJCQUFTLEVBQUUsQ0FBQztJQUdsRCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFtQjtRQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMs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
|
|
@@ -13,4 +13,4 @@ class NameSpaceNode extends i18nNode_class_1.I18nNode {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
exports.NameSpaceNode = NameSpaceNode;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlTm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbmFtZXNwYWNlTm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHFEQUE0QztBQUc1QyxNQUFhLGFBQWMsU0FBUSx5QkFBUTtJQUV6QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQWMsRUFBRSxRQUFhO1FBQzFDLG1GQUFtRjtRQUNuRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBd0I7UUFDbEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBUUY7QUFuQkQsc0NBbUJDIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare class NodeName {
|
|
2
|
-
|
|
2
|
+
readonly rawName: string;
|
|
3
3
|
readonly customTypeName?: string;
|
|
4
4
|
readonly isArray?: boolean;
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(rawName: string, customTypeName?: string, isArray?: boolean);
|
|
6
6
|
isReserved(): boolean;
|
|
7
7
|
readonly safeName: string;
|
|
8
8
|
readonly camelisedName: string;
|
|
@@ -25,24 +25,26 @@ const string_1 = __importDefault(require("string"));
|
|
|
25
25
|
function camelize(text) {
|
|
26
26
|
return string_1.default(text).camelize().toString();
|
|
27
27
|
}
|
|
28
|
-
const reservedWords = [
|
|
28
|
+
const reservedWords = [
|
|
29
|
+
'default', 'switch', 'if', 'else'
|
|
30
|
+
];
|
|
29
31
|
class NodeName {
|
|
30
|
-
constructor(
|
|
31
|
-
this.
|
|
32
|
+
constructor(rawName, customTypeName, isArray) {
|
|
33
|
+
this.rawName = rawName;
|
|
32
34
|
this.customTypeName = customTypeName;
|
|
33
35
|
this.isArray = isArray;
|
|
34
36
|
}
|
|
35
37
|
isReserved() {
|
|
36
|
-
return reservedWords.includes(this.
|
|
38
|
+
return reservedWords.includes(this.rawName);
|
|
37
39
|
}
|
|
38
40
|
get safeName() {
|
|
39
|
-
return NodeName.asJsIdentifier(this.
|
|
41
|
+
return NodeName.asJsIdentifier(this.rawName);
|
|
40
42
|
}
|
|
41
43
|
get camelisedName() {
|
|
42
|
-
return camelize(this.
|
|
44
|
+
return camelize(this.rawName);
|
|
43
45
|
}
|
|
44
46
|
get asJsIdentifier() {
|
|
45
|
-
return NodeName.asJsIdentifier(this.
|
|
47
|
+
return NodeName.asJsIdentifier(this.rawName);
|
|
46
48
|
}
|
|
47
49
|
get asClassName() {
|
|
48
50
|
return this.asJsIdentifier[0].toUpperCase() + this.asJsIdentifier.slice(1);
|
|
@@ -80,6 +82,9 @@ __decorate([
|
|
|
80
82
|
exports.NodeName = NodeName;
|
|
81
83
|
(function (NodeName) {
|
|
82
84
|
const CUSTOM_TYPE_NAME_REGEX = /^([^\(]*)\(([^\[)]*)(\[\])?\)\s*$/;
|
|
85
|
+
function stripIllegalCharacters(name) {
|
|
86
|
+
return name.replace('.', '-');
|
|
87
|
+
}
|
|
83
88
|
function parse(name) {
|
|
84
89
|
const match = CUSTOM_TYPE_NAME_REGEX.exec(name);
|
|
85
90
|
if (match) {
|
|
@@ -92,9 +97,9 @@ exports.NodeName = NodeName;
|
|
|
92
97
|
}
|
|
93
98
|
NodeName.parse = parse;
|
|
94
99
|
function asJsIdentifier(name) {
|
|
95
|
-
let camelName = camelize(name);
|
|
100
|
+
let camelName = camelize(stripIllegalCharacters(name));
|
|
96
101
|
return _.includes(reservedWords, camelName) ? `${camelName}_` : camelName;
|
|
97
102
|
}
|
|
98
103
|
NodeName.asJsIdentifier = asJsIdentifier;
|
|
99
104
|
})(NodeName = exports.NodeName || (exports.NodeName = {}));
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZU5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL25vZGVOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBFQUEyRTtBQUMzRSwwQ0FBNEI7QUFDNUIsb0RBQXVCO0FBRXZCLFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsT0FBTyxnQkFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBYTtJQUM5QixTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNO0NBQ2xDLENBQUM7QUFFRixNQUFhLFFBQVE7SUFFbkIsWUFBcUIsT0FBZSxFQUNmLGNBQXVCLEVBQ3ZCLE9BQWlCO1FBRmpCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFVO0lBQ3RDLENBQUM7SUFHRCxVQUFVO1FBQ1IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBRUY7QUE1QkM7SUFEQyxhQUFPLEVBQUU7Ozs7MENBR1Q7QUFHRDtJQURDLGFBQU8sRUFBRTs7O3dDQUdUO0FBR0Q7SUFEQyxhQUFPLEVBQUU7Ozs2Q0FHVDtBQUdEO0lBREMsYUFBTyxFQUFFOzs7OENBR1Q7QUFHRDtJQURDLGFBQU8sRUFBRTs7OzJDQUdUO0FBOUJILDRCQW9DQztBQUVELFdBQWlCLFFBQVE7SUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxtQ0FBbUMsQ0FBQztJQUVuRSxTQUFTLHNCQUFzQixDQUFDLElBQVk7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBZ0IsS0FBSyxDQUFDLElBQVk7UUFDaEMsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxFQUFFO1lBQ1Qsc0JBQXNCO1lBQ3RCLE9BQU8sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBUmUsY0FBSyxRQVFwQixDQUFBO0lBRUQsU0FBZ0IsY0FBYyxDQUFDLElBQVk7UUFDekMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVFLENBQUM7SUFIZSx1QkFBYyxpQkFHN0IsQ0FBQTtBQUdILENBQUMsRUF2QmdCLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBdUJ4QiJ9
|
|
@@ -8,7 +8,6 @@ export declare class RootNode extends I18nNode {
|
|
|
8
8
|
registerNodeTypes(nodeTypes: NodeConstructor<any>[]): void;
|
|
9
9
|
nodeTypes(): NodeConstructor<any>[];
|
|
10
10
|
rootNode(): RootNode;
|
|
11
|
-
parse(yamlData: any): void;
|
|
12
11
|
appendNamespaceTo(collector: string[]): void;
|
|
13
12
|
/*********
|
|
14
13
|
*
|
|
@@ -19,12 +19,6 @@ class RootNode extends i18nNode_class_1.I18nNode {
|
|
|
19
19
|
rootNode() {
|
|
20
20
|
return this;
|
|
21
21
|
}
|
|
22
|
-
parse(yamlData) {
|
|
23
|
-
this.withEachProperty(yamlData, (name, data) => {
|
|
24
|
-
const node = this.getOrCreatNode(name, this.computeNodeTypeOf(name, data));
|
|
25
|
-
node.parse(data);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
22
|
appendNamespaceTo(collector) {
|
|
29
23
|
// noop.
|
|
30
24
|
}
|
|
@@ -90,4 +84,4 @@ class RootNode extends i18nNode_class_1.I18nNode {
|
|
|
90
84
|
}
|
|
91
85
|
}
|
|
92
86
|
exports.RootNode = RootNode;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Jvb3ROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQThDO0FBRzlDLHFEQUE2RDtBQUM3RCx5Q0FBc0M7QUFFdEMsTUFBYSxRQUFTLFNBQVEseUJBQVE7SUFLcEMsWUFBcUIsWUFBbUIsTUFBTTtRQUM1QyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksbUJBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRFgsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFIdEMsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFJaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsUUFBUTtJQUNWLENBQUM7SUFFRDs7Y0FFVTtJQUNWLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUVBQW1FLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLFNBQVMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxTQUFTLENBQUMsNENB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
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { Stringy } from '@coolon/typescript-utilities';
|
|
3
3
|
import program from 'commander';
|
|
4
4
|
import * as fs from 'fs';
|
|
5
|
-
import glob from 'glob';
|
|
6
5
|
import { I18nGenerator } from '../i18nGenerator';
|
|
7
6
|
let srcDir;
|
|
8
7
|
let outDir;
|
|
@@ -30,44 +29,27 @@ let localeDir = `${outDir}/locales`;
|
|
|
30
29
|
if (!fs.existsSync(localeDir)) {
|
|
31
30
|
fs.mkdirSync(localeDir);
|
|
32
31
|
}
|
|
33
|
-
const configFile = `${srcDir}/config.json`;
|
|
34
|
-
let
|
|
32
|
+
const configFile = `${srcDir}/i18n.config.json`;
|
|
33
|
+
let rootNamespaceClassName = 'I18n';
|
|
35
34
|
let imports;
|
|
36
35
|
if (fs.existsSync(configFile)) {
|
|
37
36
|
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
|
|
38
|
-
|
|
37
|
+
rootNamespaceClassName = config['class'] || rootNamespaceClassName;
|
|
39
38
|
imports = config['customTypeImports'] || [];
|
|
40
39
|
}
|
|
41
|
-
const gen = new I18nGenerator(
|
|
40
|
+
const gen = new I18nGenerator(rootNamespaceClassName);
|
|
42
41
|
for (let key in imports) {
|
|
43
42
|
console.log(`registering import: ${key} --> ${imports[key]}`);
|
|
44
43
|
gen.registerType(key, imports[key]);
|
|
45
44
|
}
|
|
46
45
|
const defaultBundleFile = `${outDir}/locales/en.json`;
|
|
47
46
|
const defaultKeysBundleFile = `${outDir}/locales/message-keys.json`;
|
|
48
|
-
const apiFile = `${outDir}/${Stringy.from(
|
|
49
|
-
|
|
50
|
-
console.log(`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// er is an error object or null.
|
|
56
|
-
if (error) {
|
|
57
|
-
console.error(error);
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
60
|
-
if (files.length < 1) {
|
|
61
|
-
console.log('no files found.');
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
files.forEach(f => {
|
|
65
|
-
gen.readFile(f);
|
|
66
|
-
});
|
|
67
|
-
console.log(`Writing to -> ${apiFile}`);
|
|
68
|
-
fs.writeFileSync(apiFile, gen.getApiContent());
|
|
69
|
-
fs.writeFileSync(defaultBundleFile, gen.getDefaultBundleContent('text'));
|
|
70
|
-
fs.writeFileSync(defaultKeysBundleFile, gen.getDefaultBundleContent('keys'));
|
|
71
|
-
}
|
|
47
|
+
const apiFile = `${outDir}/${Stringy.from(rootNamespaceClassName).dasherize().toString()}.ts`;
|
|
48
|
+
gen.scanDirectory(srcDir).then(() => {
|
|
49
|
+
// console.log(`Writing to -> ${apiFile}`, gen.getApiContent());
|
|
50
|
+
console.log(`Writing to -> ${apiFile}`);
|
|
51
|
+
fs.writeFileSync(apiFile, gen.getApiContent());
|
|
52
|
+
fs.writeFileSync(defaultBundleFile, gen.getDefaultBundleContent('text'));
|
|
53
|
+
fs.writeFileSync(defaultKeysBundleFile, gen.getDefaultBundleContent('keys'));
|
|
72
54
|
});
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9iaW4vY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxJQUFJLE1BQU0sQ0FBQztBQUNYLElBQUksTUFBTSxDQUFDO0FBRVgsT0FBTztLQUNKLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztLQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ2hCLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQztLQUNwQyxNQUFNLENBQUMsVUFBUyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVU7SUFDL0MsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNuQixNQUFNLEdBQUcsU0FBUyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztLQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7SUFDakMsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDakI7QUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQjtBQUVELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDdEI7QUFDRCxJQUFJLFNBQVMsR0FBRyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO0lBQzdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FDekI7QUFHRCxNQUFNLFVBQVUsR0FBRyxHQUFHLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsSUFBSSxzQkFBc0IsR0FBVyxNQUFNLENBQUM7QUFDNUMsSUFBSSxPQUFrQyxDQUFDO0FBRXZDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0Qsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLHNCQUFzQixDQUFDO0lBQ25FLE9BQU8sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7Q0FDN0M7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RELEtBQUssSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0NBQ3JDO0FBR0QsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7QUFDOUYsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBQ2xDLGdFQUFnRTtJQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLEVBQUUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { I18nNode } from './i18nNode.class';
|
|
2
|
+
import { NodeName } from './nodeName';
|
|
1
3
|
export declare class I18nGenerator {
|
|
2
4
|
private rootNode;
|
|
3
|
-
|
|
4
|
-
private _schema;
|
|
5
|
-
constructor(rootNamespace: string);
|
|
5
|
+
constructor(rootNamespaceClassName: string);
|
|
6
6
|
registerType(typeName: string, importDeclaration: string): void;
|
|
7
|
-
|
|
7
|
+
scanDirectory(srcDir: string): Promise<void>;
|
|
8
|
+
prepareNameSpaceNode(namespacePath: NodeName[]): I18nNode;
|
|
9
|
+
private prepareNamespacePath;
|
|
8
10
|
getApiContent(): string;
|
|
9
11
|
getDefaultBundleContent(include: 'keys' | 'text'): string;
|
|
10
12
|
}
|
|
@@ -1,55 +1,21 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import glob from 'glob';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import * as path from 'path';
|
|
4
5
|
import { Module } from './ast/moduleDef.class';
|
|
5
6
|
import { CustomTypeArrayNode } from './customTypeArrayNode.class';
|
|
6
7
|
import { CustomTypeNode } from './customTypeNode.class';
|
|
7
8
|
import { EnumNode } from './enumNode.class';
|
|
8
9
|
import { NameSpaceNode } from './namespaceNode.class';
|
|
10
|
+
import { NodeName } from './nodeName';
|
|
9
11
|
import { RootNode } from './rootNode.class';
|
|
10
12
|
import { TextArrayNode } from './textArrayNode.class';
|
|
11
13
|
import { TextNode } from './textNode.class';
|
|
12
14
|
import { ValueNode } from './valueNode.class';
|
|
13
15
|
import { RootWriter } from './writer.class';
|
|
14
|
-
// TODO: use factories
|
|
15
|
-
// interface NodeFactory<T extends Node> {
|
|
16
|
-
// matches(data:any):boolean;
|
|
17
|
-
// create(name:string, data:any):T;
|
|
18
|
-
// }
|
|
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
|
-
// }
|
|
34
|
-
// TODO: merge this with nodes, so nodes become a type, not sure if this will be easy to do or not as
|
|
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
|
|
36
|
-
// to embed a marker in the data and use that when checking the node type.
|
|
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
|
-
//
|
|
49
|
-
// TODO: replace custom gulp task with https://www.npmjs.com/package/gulp-reduce-file
|
|
50
16
|
export class I18nGenerator {
|
|
51
|
-
constructor(
|
|
52
|
-
this.rootNode = new RootNode(
|
|
17
|
+
constructor(rootNamespaceClassName) {
|
|
18
|
+
this.rootNode = new RootNode(rootNamespaceClassName);
|
|
53
19
|
this.rootNode.registerNodeTypes([
|
|
54
20
|
EnumNode, CustomTypeArrayNode, CustomTypeNode, TextNode, TextArrayNode, ValueNode, NameSpaceNode
|
|
55
21
|
]);
|
|
@@ -57,15 +23,61 @@ export class I18nGenerator {
|
|
|
57
23
|
registerType(typeName, importDeclaration) {
|
|
58
24
|
this.rootNode.registerCustomType({ typeName, importDeclaration });
|
|
59
25
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
26
|
+
scanDirectory(srcDir) {
|
|
27
|
+
const self = this;
|
|
28
|
+
const pattern = `${srcDir}/**/*i18n.yml`;
|
|
29
|
+
console.log(`Scanning -> ${pattern}`);
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
glob(pattern, {}, function (error, files) {
|
|
32
|
+
// files is an array of filenames.
|
|
33
|
+
// If the `nonull` option is set, and nothing
|
|
34
|
+
// was found, then files is ["**/*.js"]
|
|
35
|
+
// er is an error object or null.
|
|
36
|
+
if (error) {
|
|
37
|
+
console.error(error);
|
|
38
|
+
reject(error);
|
|
39
|
+
}
|
|
40
|
+
if (files.length < 1) {
|
|
41
|
+
console.log('no files found.');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
files.forEach(f => {
|
|
45
|
+
const relativePath = f.substr(1 + srcDir.length);
|
|
46
|
+
try {
|
|
47
|
+
const namespacePath = self.prepareNamespacePath(relativePath);
|
|
48
|
+
self.prepareNameSpaceNode(namespacePath).parseFile(f);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.log(error);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
resolve();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
prepareNameSpaceNode(namespacePath) {
|
|
60
|
+
return namespacePath.reduce((ns, namespaceName) => {
|
|
61
|
+
return ns.getOrCreatNode(namespaceName, NameSpaceNode);
|
|
62
|
+
}, this.rootNode);
|
|
63
|
+
}
|
|
64
|
+
prepareNamespacePath(relativeFileName) {
|
|
65
|
+
const fileInfo = path.parse(relativeFileName);
|
|
66
|
+
const dirParts = fileInfo.dir.substr(fileInfo.root.length)
|
|
67
|
+
.split(path.sep)
|
|
68
|
+
.filter(name => !_.isEmpty(name));
|
|
69
|
+
if (fileInfo.name === "i18n" && dirParts.length < 1) {
|
|
70
|
+
throw new Error(`error can't process ${relativeFileName}. I18n files in the root directory must have a prefix. e.g. my-file.i18n.yml`);
|
|
66
71
|
}
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
else {
|
|
73
|
+
const fileNamespaceName = fileInfo.name.replace('.i18n', '');
|
|
74
|
+
// Angular typically has component file names with the same name as the parent directory
|
|
75
|
+
// so we check for that to avoid duplicated child namespace names.
|
|
76
|
+
// And if the i18n file is named i18n.yml then we put it in the parent namespace.
|
|
77
|
+
const parts = _.last(dirParts) === fileNamespaceName || fileNamespaceName === "i18n" ?
|
|
78
|
+
dirParts :
|
|
79
|
+
dirParts.concat(fileNamespaceName);
|
|
80
|
+
return parts.map(name => NodeName.parse(name));
|
|
69
81
|
}
|
|
70
82
|
}
|
|
71
83
|
getApiContent() {
|
|
@@ -81,4 +93,4 @@ export class I18nGenerator {
|
|
|
81
93
|
return JSON.stringify(json, null, 3);
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQVksc0JBQThCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzlCLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Constructable } from '@coolon/typescript-utilities';
|
|
1
2
|
import { Arguments } from './arguments.class';
|
|
2
3
|
import { ContainerElement } from './ast/containerElement.class';
|
|
3
4
|
import { Constructor } from './constructor.class';
|
|
@@ -23,9 +24,10 @@ export declare class I18nNode {
|
|
|
23
24
|
appendNamespaceTo(collector: string[]): void;
|
|
24
25
|
isRoot(): boolean;
|
|
25
26
|
pathToRoot(): I18nNode[];
|
|
27
|
+
parseFile(fileName: string): void;
|
|
26
28
|
parse(yamlData: any): void;
|
|
27
29
|
protected parseChild<T extends I18nNode>(name: NodeName, data: any, defaultNodeType: Constructor<T>): I18nNode;
|
|
28
|
-
getOrCreatNode(name: NodeName, type:
|
|
30
|
+
getOrCreatNode<T extends I18nNode>(name: NodeName, type: Constructable<T>): T;
|
|
29
31
|
rootNode(): RootNode;
|
|
30
32
|
nodeTypes(): NodeConstructor<any>[];
|
|
31
33
|
protected computeNodeTypeOf(name: NodeName, data: any): NodeConstructor<any>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import * as yaml from 'js-yaml';
|
|
1
3
|
import * as _ from 'lodash';
|
|
2
4
|
import { Arguments } from './arguments.class';
|
|
3
5
|
import { NodeName } from './nodeName';
|
|
@@ -28,6 +30,17 @@ export class I18nNode {
|
|
|
28
30
|
pathToRoot() {
|
|
29
31
|
return this.isRoot() ? [this] : this.parent.pathToRoot().concat(this);
|
|
30
32
|
}
|
|
33
|
+
parseFile(fileName) {
|
|
34
|
+
// let options = {schema: this.getSchema()};
|
|
35
|
+
console.log(`Loading: ${fileName}`);
|
|
36
|
+
const yamlData = yaml.safeLoad(fs.readFileSync(fileName, 'utf8'));
|
|
37
|
+
try {
|
|
38
|
+
this.parse(yamlData);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
throw new Error(`Failed to parse file:${fileName}\n-> ${e.message}\n-> ${e.stack}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
31
44
|
parse(yamlData) {
|
|
32
45
|
this.withEachProperty(yamlData, (name, data) => {
|
|
33
46
|
this.parseChild(name, data, this.computeNodeTypeOf(name, data));
|
|
@@ -77,7 +90,7 @@ export class I18nNode {
|
|
|
77
90
|
Object.getOwnPropertyNames(yamlData).forEach(unsafeKey => {
|
|
78
91
|
const name = NodeName.parse(unsafeKey);
|
|
79
92
|
if (name.isReserved()) {
|
|
80
|
-
console.log(`Warning: Yaml key '${unsafeKey}'
|
|
93
|
+
console.log(`Warning: Yaml key '${unsafeKey}' is a reserved word, converting to '${name.safeName}'`);
|
|
81
94
|
}
|
|
82
95
|
cb(name, yamlData[unsafeKey]);
|
|
83
96
|
});
|
|
@@ -141,4 +154,4 @@ export class I18nNode {
|
|
|
141
154
|
});
|
|
142
155
|
}
|
|
143
156
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bk5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2kxOG5Ob2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEtBQUssSUFBSSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVd0QyxNQUFNLE9BQU8sUUFBUTtJQUtuQixZQUFzQixNQUFnQixFQUFrQixJQUFjO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQVU7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBVTtRQUg5RCxlQUFVLEdBQTBCLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ2hFLGlCQUFZLEdBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUdsRCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxp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
|
|
@@ -10,4 +10,4 @@ export class NameSpaceNode extends I18nNode {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlTm9kZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbmFtZXNwYWNlTm9kZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBRXpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBYyxFQUFFLFFBQWE7UUFDMUMsbUZBQW1GO1FBQ25GLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUF3QjtRQUNsQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FRRiJ9
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare class NodeName {
|
|
2
|
-
|
|
2
|
+
readonly rawName: string;
|
|
3
3
|
readonly customTypeName?: string;
|
|
4
4
|
readonly isArray?: boolean;
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(rawName: string, customTypeName?: string, isArray?: boolean);
|
|
6
6
|
isReserved(): boolean;
|
|
7
7
|
readonly safeName: string;
|
|
8
8
|
readonly camelisedName: string;
|
|
@@ -13,24 +13,26 @@ import S from 'string';
|
|
|
13
13
|
function camelize(text) {
|
|
14
14
|
return S(text).camelize().toString();
|
|
15
15
|
}
|
|
16
|
-
const reservedWords = [
|
|
16
|
+
const reservedWords = [
|
|
17
|
+
'default', 'switch', 'if', 'else'
|
|
18
|
+
];
|
|
17
19
|
export class NodeName {
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
20
|
+
constructor(rawName, customTypeName, isArray) {
|
|
21
|
+
this.rawName = rawName;
|
|
20
22
|
this.customTypeName = customTypeName;
|
|
21
23
|
this.isArray = isArray;
|
|
22
24
|
}
|
|
23
25
|
isReserved() {
|
|
24
|
-
return reservedWords.includes(this.
|
|
26
|
+
return reservedWords.includes(this.rawName);
|
|
25
27
|
}
|
|
26
28
|
get safeName() {
|
|
27
|
-
return NodeName.asJsIdentifier(this.
|
|
29
|
+
return NodeName.asJsIdentifier(this.rawName);
|
|
28
30
|
}
|
|
29
31
|
get camelisedName() {
|
|
30
|
-
return camelize(this.
|
|
32
|
+
return camelize(this.rawName);
|
|
31
33
|
}
|
|
32
34
|
get asJsIdentifier() {
|
|
33
|
-
return NodeName.asJsIdentifier(this.
|
|
35
|
+
return NodeName.asJsIdentifier(this.rawName);
|
|
34
36
|
}
|
|
35
37
|
get asClassName() {
|
|
36
38
|
return this.asJsIdentifier[0].toUpperCase() + this.asJsIdentifier.slice(1);
|
|
@@ -67,6 +69,9 @@ __decorate([
|
|
|
67
69
|
], NodeName.prototype, "asClassName", null);
|
|
68
70
|
(function (NodeName) {
|
|
69
71
|
const CUSTOM_TYPE_NAME_REGEX = /^([^\(]*)\(([^\[)]*)(\[\])?\)\s*$/;
|
|
72
|
+
function stripIllegalCharacters(name) {
|
|
73
|
+
return name.replace('.', '-');
|
|
74
|
+
}
|
|
70
75
|
function parse(name) {
|
|
71
76
|
const match = CUSTOM_TYPE_NAME_REGEX.exec(name);
|
|
72
77
|
if (match) {
|
|
@@ -79,9 +84,9 @@ __decorate([
|
|
|
79
84
|
}
|
|
80
85
|
NodeName.parse = parse;
|
|
81
86
|
function asJsIdentifier(name) {
|
|
82
|
-
let camelName = camelize(name);
|
|
87
|
+
let camelName = camelize(stripIllegalCharacters(name));
|
|
83
88
|
return _.includes(reservedWords, camelName) ? `${camelName}_` : camelName;
|
|
84
89
|
}
|
|
85
90
|
NodeName.asJsIdentifier = asJsIdentifier;
|
|
86
91
|
})(NodeName || (NodeName = {}));
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZU5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL25vZGVOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsU0FBUyxRQUFRLENBQUMsSUFBWTtJQUM1QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTTtDQUNsQyxDQUFDO0FBRUYsTUFBTSxPQUFPLFFBQVE7SUFFbkIsWUFBcUIsT0FBZSxFQUNmLGNBQXVCLEVBQ3ZCLE9BQWlCO1FBRmpCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFVO0lBQ3RDLENBQUM7SUFHRCxVQUFVO1FBQ1IsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFHRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBRUY7QUE1QkM7SUFEQyxPQUFPLEVBQUU7Ozs7MENBR1Q7QUFHRDtJQURDLE9BQU8sRUFBRTs7O3dDQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs2Q0FHVDtBQUdEO0lBREMsT0FBTyxFQUFFOzs7OENBR1Q7QUFHRDtJQURDLE9BQU8sRUFBRTs7OzJDQUdUO0FBUUgsV0FBaUIsUUFBUTtJQUN2QixNQUFNLHNCQUFzQixHQUFHLG1DQUFtQyxDQUFDO0lBRW5FLFNBQVMsc0JBQXNCLENBQUMsSUFBWTtRQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFnQixLQUFLLENBQUMsSUFBWTtRQUNoQyxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxzQkFBc0I7WUFDdEIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFSZSxjQUFLLFFBUXBCLENBQUE7SUFFRCxTQUFnQixjQUFjLENBQUMsSUFBWTtRQUN6QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUUsQ0FBQztJQUhlLHVCQUFjLGlCQUc3QixDQUFBO0FBR0gsQ0FBQyxFQXZCZ0IsUUFBUSxLQUFSLFFBQVEsUUF1QnhCIn0=
|
|
@@ -8,7 +8,6 @@ export declare class RootNode extends I18nNode {
|
|
|
8
8
|
registerNodeTypes(nodeTypes: NodeConstructor<any>[]): void;
|
|
9
9
|
nodeTypes(): NodeConstructor<any>[];
|
|
10
10
|
rootNode(): RootNode;
|
|
11
|
-
parse(yamlData: any): void;
|
|
12
11
|
appendNamespaceTo(collector: string[]): void;
|
|
13
12
|
/*********
|
|
14
13
|
*
|
|
@@ -17,12 +17,6 @@ export class RootNode extends I18nNode {
|
|
|
17
17
|
rootNode() {
|
|
18
18
|
return this;
|
|
19
19
|
}
|
|
20
|
-
parse(yamlData) {
|
|
21
|
-
this.withEachProperty(yamlData, (name, data) => {
|
|
22
|
-
const node = this.getOrCreatNode(name, this.computeNodeTypeOf(name, data));
|
|
23
|
-
node.parse(data);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
20
|
appendNamespaceTo(collector) {
|
|
27
21
|
// noop.
|
|
28
22
|
}
|
|
@@ -87,4 +81,4 @@ export class RootNode extends I18nNode {
|
|
|
87
81
|
this.customTypesImports.set(customType.typeName, customType.importDeclaration);
|
|
88
82
|
}
|
|
89
83
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Jvb3ROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLFFBQVMsU0FBUSxRQUFRO0lBS3BDLFlBQXFCLFlBQW1CLE1BQU07UUFDNUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRFgsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFIdEMsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFJaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsUUFBUTtJQUNWLENBQUM7SUFFRDs7Y0FFVTtJQUNWLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUVBQW1FLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENB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
|
package/package.json
CHANGED