@coolon/i18n-resource-generator 3.0.1 → 3.0.2
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/index.js +12 -5
- package/build/main/lib/arg.class.d.ts +3 -3
- package/build/main/lib/arg.class.js +2 -1
- package/build/main/lib/arguments.class.js +5 -4
- package/build/main/lib/ast/abstractContainerElement.js +16 -3
- package/build/main/lib/ast/abstractElement.d.ts +2 -2
- package/build/main/lib/ast/abstractElement.js +2 -1
- package/build/main/lib/ast/classDef.class.js +2 -1
- package/build/main/lib/ast/functionDef.class.js +2 -1
- package/build/main/lib/ast/interfaceDef.class.js +2 -1
- package/build/main/lib/ast/jsonModule.class.js +2 -1
- package/build/main/lib/ast/moduleDef.class.js +2 -1
- package/build/main/lib/ast/namespaceDef.class.js +2 -1
- package/build/main/lib/ast/objectDef.class.js +16 -3
- package/build/main/lib/ast/statementDef.class.js +2 -1
- package/build/main/lib/ast/tempContainer.class.js +2 -1
- package/build/main/lib/ast/typeDef.class.js +2 -1
- package/build/main/lib/bin/cli.js +53 -39
- package/build/main/lib/customTypeArrayNode.class.js +2 -1
- package/build/main/lib/customTypeNode.class.d.ts +1 -1
- package/build/main/lib/customTypeNode.class.js +2 -1
- package/build/main/lib/enumNode.class.js +16 -3
- package/build/main/lib/i18nGenerator.d.ts +1 -0
- package/build/main/lib/i18nGenerator.js +25 -7
- package/build/main/lib/i18nNode.class.d.ts +6 -6
- package/build/main/lib/i18nNode.class.js +19 -6
- package/build/main/lib/index.js +38 -28
- package/build/main/lib/namespaceNode.class.js +2 -1
- package/build/main/lib/nodeName.d.ts +4 -4
- package/build/main/lib/nodeName.js +19 -6
- package/build/main/lib/rootNode.class.js +2 -1
- package/build/main/lib/stringUtil.js +2 -1
- package/build/main/lib/textArrayNode.class.js +16 -3
- package/build/main/lib/textNode.class.js +19 -6
- package/build/main/lib/valueNode.class.js +16 -3
- package/build/main/lib/writer.class.js +2 -1
- package/build/module/lib/arg.class.d.ts +3 -3
- package/build/module/lib/arguments.class.js +4 -4
- package/build/module/lib/ast/abstractElement.d.ts +2 -2
- package/build/module/lib/ast/containerElement.class.js +1 -0
- package/build/module/lib/ast/element.class.js +1 -0
- package/build/module/lib/bin/cli.js +43 -34
- package/build/module/lib/constructor.class.js +1 -0
- package/build/module/lib/customTypeNode.class.d.ts +1 -1
- package/build/module/lib/i18nGenerator.d.ts +1 -0
- package/build/module/lib/i18nGenerator.js +7 -2
- package/build/module/lib/i18nNode.class.d.ts +6 -6
- package/build/module/lib/index.js +4 -1
- package/build/module/lib/nodeName.d.ts +4 -4
- package/gen/i18n-custom.ts +38 -0
- package/gen/locales/en.json +1 -0
- package/gen/locales/message-keys.json +1 -0
- package/package.json +10 -14
|
@@ -4,8 +4,8 @@ export declare class Arg {
|
|
|
4
4
|
readonly formatName: string;
|
|
5
5
|
private _formatValue;
|
|
6
6
|
constructor(name: string, type: string);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
get argName(): string;
|
|
8
|
+
get argType(): string;
|
|
9
|
+
get formatValue(): string;
|
|
10
10
|
asBooleanOptionNamed(name: string): this;
|
|
11
11
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Arg } from './arg.class';
|
|
2
2
|
export class Arguments {
|
|
3
|
+
constructor(args) {
|
|
4
|
+
this.args = args || [];
|
|
5
|
+
}
|
|
3
6
|
static createSingle(name, type) {
|
|
4
7
|
return new Arguments([new Arg(name, type)]);
|
|
5
8
|
}
|
|
@@ -13,9 +16,6 @@ export class Arguments {
|
|
|
13
16
|
static empty() {
|
|
14
17
|
return emptyArgs;
|
|
15
18
|
}
|
|
16
|
-
constructor(args) {
|
|
17
|
-
this.args = args || [];
|
|
18
|
-
}
|
|
19
19
|
add(arg) {
|
|
20
20
|
if (this.canAdd(arg)) {
|
|
21
21
|
this.args.push(arg);
|
|
@@ -59,4 +59,4 @@ class EmptyArgs extends Arguments {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
const emptyArgs = new EmptyArgs();
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcmd1bWVudHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQW9CcEIsWUFBWSxJQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBcEJELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDNUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBOEI7UUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUM3QixLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBUUQsR0FBRyxDQUFDLEdBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxhQUFpRCxXQUFXO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxRixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWdCO1FBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFRO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsb0VBQW9FLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sbUJBQW1CLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDMUs7UUFDRCxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxTQUFVLFNBQVEsU0FBUztJQUMvQjtRQUNFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFHRCxLQUFLLENBQUMsS0FBZ0I7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQUVELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMifQ==
|
|
@@ -4,9 +4,9 @@ export declare abstract class AbstractElement implements Element {
|
|
|
4
4
|
private readonly _name;
|
|
5
5
|
private _parent;
|
|
6
6
|
constructor(_name: string);
|
|
7
|
-
|
|
7
|
+
get name(): string;
|
|
8
8
|
setParent(parent: Element): void;
|
|
9
|
-
|
|
9
|
+
get parent(): Element;
|
|
10
10
|
isRoot(): boolean;
|
|
11
11
|
pathToRoot(): Element[];
|
|
12
12
|
pathTo(parent: Element): Element[];
|
|
@@ -2,54 +2,63 @@
|
|
|
2
2
|
import { Stringy } from '@coolon/typescript-utilities';
|
|
3
3
|
import program from 'commander';
|
|
4
4
|
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
5
6
|
import { I18nGenerator } from '../i18nGenerator';
|
|
6
|
-
let
|
|
7
|
-
|
|
7
|
+
let configFilePath;
|
|
8
|
+
function normalisePath(rootDir, other) {
|
|
9
|
+
return path.isAbsolute(other) ? other : path.normalize(path.join(rootDir, other));
|
|
10
|
+
}
|
|
11
|
+
function load(configFile) {
|
|
12
|
+
if (!fs.existsSync(configFile)) {
|
|
13
|
+
console.error(`config file not found at: ${configFile}`);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
const fileInfo = path.parse(path.normalize(configFile));
|
|
17
|
+
const defaultConfig = {
|
|
18
|
+
srcDirs: [fileInfo.dir],
|
|
19
|
+
outDir: fileInfo.dir,
|
|
20
|
+
class: 'I18n',
|
|
21
|
+
customTypeImports: {}
|
|
22
|
+
};
|
|
23
|
+
let config = {
|
|
24
|
+
...defaultConfig,
|
|
25
|
+
...JSON.parse(fs.readFileSync(configFile, 'utf8'))
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
...config,
|
|
29
|
+
srcDirs: config.srcDirs.map(d => normalisePath(fileInfo.dir, d)),
|
|
30
|
+
outDir: normalisePath(fileInfo.dir, config.outDir)
|
|
31
|
+
};
|
|
32
|
+
}
|
|
8
33
|
program
|
|
9
34
|
.name('i18n-resource-generator')
|
|
10
35
|
.version('0.1.0')
|
|
11
|
-
.arguments('<
|
|
12
|
-
.action(
|
|
13
|
-
|
|
14
|
-
outDir = outputDir;
|
|
36
|
+
.arguments('<configFile>')
|
|
37
|
+
.action(configFile => {
|
|
38
|
+
configFilePath = configFile;
|
|
15
39
|
})
|
|
16
40
|
.parse(process.argv);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
if (typeof outDir === 'undefined') {
|
|
22
|
-
console.error('no output directory specified!');
|
|
23
|
-
process.exit(1);
|
|
41
|
+
const config = load(configFilePath);
|
|
42
|
+
if (!fs.existsSync(config.outDir)) {
|
|
43
|
+
fs.mkdirSync(config.outDir);
|
|
24
44
|
}
|
|
25
|
-
|
|
26
|
-
fs.mkdirSync(outDir);
|
|
27
|
-
}
|
|
28
|
-
let localeDir = `${outDir}/locales`;
|
|
45
|
+
let localeDir = `${config.outDir}/locales`;
|
|
29
46
|
if (!fs.existsSync(localeDir)) {
|
|
30
47
|
fs.mkdirSync(localeDir);
|
|
31
48
|
}
|
|
32
|
-
const
|
|
33
|
-
let
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
|
|
37
|
-
rootNamespaceClassName = config['class'] || rootNamespaceClassName;
|
|
38
|
-
imports = config['customTypeImports'] || [];
|
|
39
|
-
}
|
|
40
|
-
const gen = new I18nGenerator(rootNamespaceClassName);
|
|
41
|
-
for (let key in imports) {
|
|
42
|
-
console.log(`registering import: ${key} --> ${imports[key]}`);
|
|
43
|
-
gen.registerType(key, imports[key]);
|
|
49
|
+
const gen = new I18nGenerator(config.class);
|
|
50
|
+
for (let key in config.customTypeImports) {
|
|
51
|
+
console.log(`registering import: ${key} --> ${config.customTypeImports[key]}`);
|
|
52
|
+
gen.registerType(key, config.customTypeImports[key]);
|
|
44
53
|
}
|
|
45
|
-
const defaultBundleFile = `${outDir}/locales/en.json`;
|
|
46
|
-
const defaultKeysBundleFile = `${outDir}/locales/message-keys.json`;
|
|
47
|
-
const apiFile = `${outDir}/${Stringy.from(
|
|
48
|
-
gen.
|
|
54
|
+
const defaultBundleFile = `${config.outDir}/locales/en.json`;
|
|
55
|
+
const defaultKeysBundleFile = `${config.outDir}/locales/message-keys.json`;
|
|
56
|
+
const apiFile = `${config.outDir}/${Stringy.from(config.class).dasherize().toString()}.ts`;
|
|
57
|
+
gen.scanDirectories(config.srcDirs).then(() => {
|
|
49
58
|
// console.log(`Writing to -> ${apiFile}`, gen.getApiContent());
|
|
50
59
|
console.log(`Writing to -> ${apiFile}`);
|
|
51
60
|
fs.writeFileSync(apiFile, gen.getApiContent());
|
|
52
61
|
fs.writeFileSync(defaultBundleFile, gen.getDefaultBundleContent('text'));
|
|
53
62
|
fs.writeFileSync(defaultKeysBundleFile, gen.getDefaultBundleContent('keys'));
|
|
54
63
|
});
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9iaW4vY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxJQUFJLGNBQWMsQ0FBQztBQVduQixTQUFTLGFBQWEsQ0FBQyxPQUFlLEVBQUUsS0FBWTtJQUNsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxVQUFrQjtJQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7SUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLGFBQWEsR0FBVztRQUM1QixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRztRQUNwQixLQUFLLEVBQUUsTUFBTTtRQUNiLGlCQUFpQixF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
|
|
@@ -4,6 +4,7 @@ export declare class I18nGenerator {
|
|
|
4
4
|
private rootNode;
|
|
5
5
|
constructor(rootNamespaceClassName: string);
|
|
6
6
|
registerType(typeName: string, importDeclaration: string): void;
|
|
7
|
+
scanDirectories(dirs: string[]): Promise<void>;
|
|
7
8
|
scanDirectory(srcDir: string): Promise<void>;
|
|
8
9
|
prepareNameSpaceNode(namespacePath: NodeName[]): I18nNode;
|
|
9
10
|
private prepareNamespacePath;
|
|
@@ -23,7 +23,12 @@ export class I18nGenerator {
|
|
|
23
23
|
registerType(typeName, importDeclaration) {
|
|
24
24
|
this.rootNode.registerCustomType({ typeName, importDeclaration });
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
async scanDirectories(dirs) {
|
|
27
|
+
for (var i = 0; i < dirs.length; i++) {
|
|
28
|
+
await this.scanDirectory(dirs[i]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async scanDirectory(srcDir) {
|
|
27
32
|
const self = this;
|
|
28
33
|
const pattern = `${srcDir}/**/*i18n.yml`;
|
|
29
34
|
console.log(`Scanning -> ${pattern}`);
|
|
@@ -93,4 +98,4 @@ export class I18nGenerator {
|
|
|
93
98
|
return JSON.stringify(json, null, 3);
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bkdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bkdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQVksc0JBQThCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzlCLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFB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
|
|
@@ -16,11 +16,11 @@ export declare class I18nNode {
|
|
|
16
16
|
private childNodes;
|
|
17
17
|
private templateArgs;
|
|
18
18
|
constructor(parent: I18nNode, name: NodeName);
|
|
19
|
-
|
|
19
|
+
get key(): string;
|
|
20
20
|
/**
|
|
21
21
|
* Returns the full path to this nodes namespace as used in code. Doesn't include the I18n prefix.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
get accessor(): string;
|
|
24
24
|
appendNamespaceTo(collector: string[]): void;
|
|
25
25
|
isRoot(): boolean;
|
|
26
26
|
pathToRoot(): I18nNode[];
|
|
@@ -33,13 +33,13 @@ export declare class I18nNode {
|
|
|
33
33
|
protected computeNodeTypeOf(name: NodeName, data: any): NodeConstructor<any>;
|
|
34
34
|
protected supportedChildNodeTypes(): NodeConstructor<any>[];
|
|
35
35
|
protected withEachProperty(yamlData: any, cb: (name: NodeName, data: any) => void): void;
|
|
36
|
-
protected
|
|
36
|
+
protected get children(): I18nNode[];
|
|
37
37
|
protected eachChild(cb: (node: I18nNode) => void): void;
|
|
38
38
|
getArgs(): Arguments;
|
|
39
39
|
hasArgs(): boolean;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
get namespaceName(): string;
|
|
41
|
+
get className(): string;
|
|
42
|
+
get fqClassName(): string;
|
|
43
43
|
createArrayFunctionBody(key: string, args: Arguments, out: Writer): void;
|
|
44
44
|
generateApi(parent: ContainerElement): void;
|
|
45
45
|
generateMessageBundle(parent: {}, include: 'keys' | 'text'): void;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./arg.class";
|
|
5
5
|
export * from "./arguments.class";
|
|
6
|
+
export * from "./constructor.class";
|
|
6
7
|
export * from "./customTypeArrayNode.class";
|
|
7
8
|
export * from "./customTypeNode.class";
|
|
8
9
|
export * from "./enumNode.class";
|
|
@@ -18,6 +19,8 @@ export * from "./writer.class";
|
|
|
18
19
|
export * from "./ast/abstractContainerElement";
|
|
19
20
|
export * from "./ast/abstractElement";
|
|
20
21
|
export * from "./ast/classDef.class";
|
|
22
|
+
export * from "./ast/containerElement.class";
|
|
23
|
+
export * from "./ast/element.class";
|
|
21
24
|
export * from "./ast/functionDef.class";
|
|
22
25
|
export * from "./ast/interfaceDef.class";
|
|
23
26
|
export * from "./ast/moduleDef.class";
|
|
@@ -25,4 +28,4 @@ export * from "./ast/namespaceDef.class";
|
|
|
25
28
|
export * from "./ast/objectDef.class";
|
|
26
29
|
export * from "./ast/tempContainer.class";
|
|
27
30
|
export * from "./ast/typeDef.class";
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQyJ9
|
|
@@ -4,10 +4,10 @@ export declare class NodeName {
|
|
|
4
4
|
readonly isArray?: boolean;
|
|
5
5
|
constructor(rawName: string, customTypeName?: string, isArray?: boolean);
|
|
6
6
|
isReserved(): boolean;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
get safeName(): string;
|
|
8
|
+
get camelisedName(): string;
|
|
9
|
+
get asJsIdentifier(): string;
|
|
10
|
+
get asClassName(): string;
|
|
11
11
|
validKeys(): string[];
|
|
12
12
|
}
|
|
13
13
|
export declare namespace NodeName {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/******** IMPORTANT *********
|
|
2
|
+
*
|
|
3
|
+
* This file is automatically generated. Any edits will be lost.
|
|
4
|
+
*
|
|
5
|
+
****/
|
|
6
|
+
/* tslint:disable:no-shadowed-variable */
|
|
7
|
+
|
|
8
|
+
import MessageFormat from 'message-format';
|
|
9
|
+
import * as _ from 'lodash';
|
|
10
|
+
import {Alert} from "../alert";
|
|
11
|
+
import {Confirm} from "../confirm";
|
|
12
|
+
import defaultBundle from './locales/en.json';
|
|
13
|
+
import messageKeysBundle from './locales/message-keys.json';
|
|
14
|
+
|
|
15
|
+
const _messageLocaleKey = "message-keys";
|
|
16
|
+
export namespace I18nCustom {
|
|
17
|
+
let _locale:string = null;
|
|
18
|
+
let _activeBundle:any = null;
|
|
19
|
+
const _bundles = new Map<string,any>();
|
|
20
|
+
registerBundle(_messageLocaleKey, messageKeysBundle);
|
|
21
|
+
registerBundle("en", defaultBundle);
|
|
22
|
+
setLocale("en");
|
|
23
|
+
export function registerBundle(locale:string, bundle:any):void {
|
|
24
|
+
if (_bundles.has(locale)) { throw new Error("bundle already registered for: " + locale)}
|
|
25
|
+
_bundles.set(locale, bundle);
|
|
26
|
+
}
|
|
27
|
+
export function setLocale(locale:string):void {
|
|
28
|
+
if (!_bundles.has(locale)) { throw new Error("No bundle registered for: " + locale)}
|
|
29
|
+
_locale = locale;
|
|
30
|
+
_activeBundle = _bundles.get(_locale);
|
|
31
|
+
}
|
|
32
|
+
export function getAvailableLocales():string[] {
|
|
33
|
+
return Array.from(_bundles.keys()).filter(key => key !== _messageLocaleKey);
|
|
34
|
+
}
|
|
35
|
+
export function getLocale():string {
|
|
36
|
+
return _locale
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coolon/i18n-resource-generator",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "Generates typescript classes from yml resource bundles using the icu message format",
|
|
5
5
|
"main": "build/main/index.js",
|
|
6
6
|
"typings": "build/main/index.d.ts",
|
|
@@ -29,17 +29,13 @@
|
|
|
29
29
|
"cov:html": "nyc report --reporter=html",
|
|
30
30
|
"cov:send": "nyc report --reporter=lcov > coverage.lcov && codecov",
|
|
31
31
|
"cov:check": "nyc report && nyc check-coverage --lines 100 --functions 100 --branches 100",
|
|
32
|
-
"doc": "run-s doc:html && opn build/docs/index.html",
|
|
33
|
-
"doc:html": "typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out build/docs",
|
|
34
|
-
"doc:json": "typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json build/docs/typedoc.json",
|
|
35
|
-
"doc:publish": "gh-pages -m \"[ci skip] Updates\" -d build/docs",
|
|
36
32
|
"version": "standard-version",
|
|
37
33
|
"reset": "git clean -dfx && git reset --hard && npm i",
|
|
38
34
|
"clean": "trash build",
|
|
39
|
-
"all": "run-s reset test cov:check
|
|
35
|
+
"all": "run-s reset test cov:check",
|
|
40
36
|
"prepare-release": "run-s all version",
|
|
41
37
|
"publish-release": " git push --follow-tags origin master && npm publish",
|
|
42
|
-
"test:fixtures": "node build/main/lib/bin/cli.js
|
|
38
|
+
"test:fixtures": "node build/main/lib/bin/cli.js src/test/integration/i18n.config.json"
|
|
43
39
|
},
|
|
44
40
|
"scripts-info": {
|
|
45
41
|
"info": "Display information about the package scripts",
|
|
@@ -69,7 +65,7 @@
|
|
|
69
65
|
"message-format": "^6.2.3",
|
|
70
66
|
"string": "^3.3.3",
|
|
71
67
|
"through2": "^2.0.3",
|
|
72
|
-
"ts-morph": "^
|
|
68
|
+
"ts-morph": "^10.0.2",
|
|
73
69
|
"vinyl": "^2.0.1",
|
|
74
70
|
"reflect-metadata": "^0.1.13"
|
|
75
71
|
},
|
|
@@ -96,12 +92,12 @@
|
|
|
96
92
|
"prettier": "^1.15.2",
|
|
97
93
|
"standard-version": "^4.4.0",
|
|
98
94
|
"trash-cli": "^1.4.0",
|
|
99
|
-
"ts-node": "^
|
|
100
|
-
"tslint": "^
|
|
101
|
-
"tslint-config-prettier": "^1.
|
|
102
|
-
"tslint-immutable": "^
|
|
103
|
-
"typedoc": "^0.
|
|
104
|
-
"typescript": "^
|
|
95
|
+
"ts-node": "^9.1.1",
|
|
96
|
+
"tslint": "^6.1.3",
|
|
97
|
+
"tslint-config-prettier": "^1.18.0",
|
|
98
|
+
"tslint-immutable": "^6.0.1",
|
|
99
|
+
"typedoc": "^0.20.34",
|
|
100
|
+
"typescript": "^4.2.3"
|
|
105
101
|
},
|
|
106
102
|
"ava": {
|
|
107
103
|
"failFast": true,
|