@coolon/i18n-resource-generator 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -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 +42 -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 +42 -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
|
@@ -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,53 @@ 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:string = "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.createStatement('registerBundle("en", defaultBundle)');
|
|
60
|
+
namespace.createStatement('setLanguage("en")');
|
|
36
61
|
this.eachChild(child => {
|
|
37
|
-
child.
|
|
62
|
+
child.generateApi(namespace);
|
|
38
63
|
});
|
|
39
64
|
});
|
|
40
65
|
}
|
|
66
|
+
/*********
|
|
67
|
+
*
|
|
68
|
+
********/
|
|
69
|
+
generateMessageBundle(object) {
|
|
70
|
+
this.eachChild(child => {
|
|
71
|
+
child.generateMessageBundle(object);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
registerCustomType(customType) {
|
|
75
|
+
this.customTypesImports.set(customType.typeName, customType.importDeclaration);
|
|
76
|
+
}
|
|
41
77
|
}
|
|
42
78
|
exports.RootNode = RootNode;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdE5vZGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Jvb3ROb2RlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQThDO0FBRzlDLHFEQUE2RDtBQUM3RCx5Q0FBc0M7QUFFdEMsTUFBYSxRQUFTLFNBQVEseUJBQVE7SUFLcEM7UUFDRSxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksbUJBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBSnhCLGVBQVUsR0FBMkIsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBSWhFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFpQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWE7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQWMsRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUM1RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFtQjtRQUNuQyxRQUFRO0lBQ1YsQ0FBQztJQUVEOztjQUVVO0lBQ1YsV0FBVyxDQUFDLE1BQWM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsU0FBUyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsRUFBRTtZQUMvRCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsU0FBUyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFFcEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDekMsU0FBUyxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ3ZELFNBQVMsQ0FBQyxlQUFlLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUMxRCxTQUFTLENBQUMsZUFBZSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDcEUsTUFBTSxJQUFJLEdBQUcsMkJBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQy9CLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixNQUFNLEVBQUUsS0FBSzthQUNkLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDaEUsTUFBTSxDQUFDLE9BQU8sQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO2dCQUMzRyxNQUFNLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxTQUFTLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSwyQkFBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLHNGQUFzRixDQUFDLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQzNELENBQUMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLGVBQWUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ2pFLFNBQVMsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUUvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O2NBRVU7SUFDVixxQkFBcUIsQ0FBQyxNQUFVO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckIsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQTJEO1FBQzVFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRixDQUFDO0NBQ0Y7QUF0RkQsNEJBc0ZDIn0=
|
|
@@ -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==
|
|
@@ -11,7 +11,7 @@ class RootWriter {
|
|
|
11
11
|
func(new ChildWriter(this));
|
|
12
12
|
}
|
|
13
13
|
toString() {
|
|
14
|
-
return this.lines.join(
|
|
14
|
+
return this.lines.join('\n');
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.RootWriter = RootWriter;
|
|
@@ -26,4 +26,4 @@ class ChildWriter {
|
|
|
26
26
|
func(new ChildWriter(this));
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93cml0ZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxNQUFhLFVBQVU7SUFBdkI7UUFDVSxVQUFLLEdBQWEsRUFBRSxDQUFDO0lBYS9CLENBQUM7SUFYQyxPQUFPLENBQUMsRUFBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQThCO1FBQ25DLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFkRCxnQ0FjQztBQUVELE1BQU0sV0FBVztJQUVmLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2xDLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQThCO1FBQ25DLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { Arg } from
|
|
1
|
+
import { Arg } from './arg.class';
|
|
2
2
|
export declare class Arguments {
|
|
3
|
-
static
|
|
4
|
-
static
|
|
3
|
+
static createSingle(name: string, type: string): Arguments;
|
|
4
|
+
static createAll(def: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
}): Arguments;
|
|
7
|
+
static empty(): Arguments;
|
|
5
8
|
private args;
|
|
6
9
|
constructor(args?: Arg[]);
|
|
7
10
|
add(arg: Arg): void;
|
|
@@ -13,8 +16,3 @@ export declare class Arguments {
|
|
|
13
16
|
any(): boolean;
|
|
14
17
|
private canAdd;
|
|
15
18
|
}
|
|
16
|
-
declare class EmptyArgs extends Arguments {
|
|
17
|
-
constructor();
|
|
18
|
-
merge(other: Arguments): Arguments;
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import { Arg } from
|
|
1
|
+
import { Arg } from './arg.class';
|
|
2
2
|
export class Arguments {
|
|
3
|
-
static
|
|
3
|
+
static createSingle(name, type) {
|
|
4
4
|
return new Arguments([new Arg(name, type)]);
|
|
5
5
|
}
|
|
6
|
+
static createAll(def) {
|
|
7
|
+
const args = new Arguments();
|
|
8
|
+
for (let key in def) {
|
|
9
|
+
args.add(new Arg(key, def[key]));
|
|
10
|
+
}
|
|
11
|
+
return args;
|
|
12
|
+
}
|
|
6
13
|
static empty() {
|
|
7
14
|
return emptyArgs;
|
|
8
15
|
}
|
|
@@ -49,4 +56,4 @@ class EmptyArgs extends Arguments {
|
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
const emptyArgs = new EmptyArgs();
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcmd1bWVudHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxNQUFNLE9BQU8sU0FBUztJQUVwQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxJQUFZO1FBQzVDLE9BQU8sSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQThCO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDN0IsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlELFlBQVksSUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsYUFBaUQsV0FBVztRQUNsRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUYsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFnQjtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBUTtRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMxRztRQUNELE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxTQUFVLFNBQVEsU0FBUztJQUMvQjtRQUNFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFHRCxLQUFLLENBQUMsS0FBZ0I7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRjtBQUVELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMifQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AbstractElement } from
|
|
3
|
-
import {
|
|
1
|
+
import { Constructor } from '../constructor.class';
|
|
2
|
+
import { AbstractElement } from './abstractElement';
|
|
3
|
+
import { Element } from './element.class';
|
|
4
4
|
export declare abstract class AbstractContainerElement extends AbstractElement {
|
|
5
5
|
private children;
|
|
6
6
|
addElement<T extends Element>(child: T, func?: (def: T) => void): T;
|
|
7
|
-
forEach<T extends Element>(type: Constructor<T>, callback: (item: T) => void): void;
|
|
7
|
+
forEach<T extends Element>(type: Constructor<T>, callback: (item: T, last: boolean) => void): void;
|
|
8
8
|
allOfType<T extends Element>(type: Constructor<T>): T[];
|
|
9
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _ from 'lodash';
|
|
2
|
-
import { AbstractElement } from
|
|
2
|
+
import { AbstractElement } from './abstractElement';
|
|
3
3
|
export class AbstractContainerElement extends AbstractElement {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
@@ -12,10 +12,11 @@ export class AbstractContainerElement extends AbstractElement {
|
|
|
12
12
|
return child;
|
|
13
13
|
}
|
|
14
14
|
forEach(type, callback) {
|
|
15
|
-
this.allOfType(type)
|
|
15
|
+
let types = this.allOfType(type);
|
|
16
|
+
types.forEach((child, idx) => callback(child, idx === types.length - 1));
|
|
16
17
|
}
|
|
17
18
|
allOfType(type) {
|
|
18
19
|
return _.filter(this.children, child => child instanceof type);
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RDb250YWluZXJFbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvYWJzdHJhY3RDb250YWluZXJFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUlwRCxNQUFNLE9BQWdCLHdCQUF5QixTQUFRLGVBQWU7SUFBdEU7O1FBRVUsYUFBUSxHQUFjLEVBQUUsQ0FBQztJQWtCbkMsQ0FBQztJQWhCQyxVQUFVLENBQW9CLEtBQVEsRUFBRSxJQUF1QjtRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxDQUFvQixJQUFvQixFQUFFLFFBQXlDO1FBQ3hGLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsU0FBUyxDQUFvQixJQUFvQjtRQUMvQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxJQUFJLENBQVEsQ0FBQztJQUN4RSxDQUFDO0NBRUYifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Writer } from
|
|
2
|
-
import { Element } from
|
|
1
|
+
import { Writer } from '../writer.class';
|
|
2
|
+
import { Element } from './element.class';
|
|
3
3
|
export declare abstract class AbstractElement implements Element {
|
|
4
4
|
private readonly _name;
|
|
5
5
|
private _parent;
|
|
@@ -33,4 +33,4 @@ export class AbstractElement {
|
|
|
33
33
|
return this.isRoot() ? [] : this.parent.parentPath().concat(this.parent);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvYWJzdHJhY3RFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IsZUFBZTtJQUluQyxZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUMxQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBZTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFlO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRSxDQUFDO0NBSUYifQ==
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { Arguments } from '../arguments.class';
|
|
2
|
+
import { Constructor } from '../constructor.class';
|
|
3
|
+
import { Writer } from '../writer.class';
|
|
4
|
+
import { ClassDef } from './classDef.class';
|
|
5
|
+
import { Element } from './element.class';
|
|
6
|
+
import { InterfaceDef } from './interfaceDef.class';
|
|
7
|
+
import { ObjectDef } from './objectDef.class';
|
|
8
8
|
export interface ContainerElement extends Element {
|
|
9
9
|
nestedContainer(name: string, configure: (context: ContainerElement) => void): void;
|
|
10
|
+
createStatement(statement: string): void;
|
|
10
11
|
defineInterface(name: string, configure?: (def: InterfaceDef) => void): InterfaceDef;
|
|
11
12
|
defineClass(name: string, args: Arguments, configure?: (def: ClassDef) => void): ClassDef;
|
|
12
13
|
createObject(name: string, configure?: (def: ObjectDef) => void): ObjectDef;
|
|
13
|
-
createFunction(name: string, args: Arguments, returnType: string, configure: (def: Writer) => void):
|
|
14
|
-
defineType(name: string, value: string):
|
|
15
|
-
forEach<T extends Element>(type: Constructor<T>, callback: (item: T) => void):
|
|
14
|
+
createFunction(name: string, args: Arguments, returnType: string, configure: (def: Writer) => void): void;
|
|
15
|
+
defineType(name: string, value: string): void;
|
|
16
|
+
forEach<T extends Element>(type: Constructor<T>, callback: (item: T) => void): void;
|
|
16
17
|
allOfType<T extends Element>(type: Constructor<T>): T[];
|
|
17
18
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Writer } from '../writer.class';
|
|
2
|
+
import { ObjectDef } from './objectDef.class';
|
|
3
|
+
export declare class JsonModule extends ObjectDef {
|
|
4
|
+
private rootObject;
|
|
5
|
+
constructor();
|
|
6
|
+
defineObject(callback: (def: ObjectDef) => void): void;
|
|
7
|
+
writeBody(writer: Writer): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ObjectDef } from './objectDef.class';
|
|
2
|
+
export class JsonModule extends ObjectDef {
|
|
3
|
+
constructor() {
|
|
4
|
+
super('');
|
|
5
|
+
}
|
|
6
|
+
defineObject(callback) {
|
|
7
|
+
this.rootObject = new JsonModule();
|
|
8
|
+
callback(this.rootObject);
|
|
9
|
+
}
|
|
10
|
+
writeBody(writer) {
|
|
11
|
+
writer.println(`{`);
|
|
12
|
+
writer.indent(w => {
|
|
13
|
+
super.writeBody(w);
|
|
14
|
+
});
|
|
15
|
+
writer.println(`}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbk1vZHVsZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L2pzb25Nb2R1bGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxVQUFXLFNBQVEsU0FBUztJQUd2QztRQUNFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBa0M7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBQ0YifQ==
|
|
@@ -9,6 +9,7 @@ import { TypeDef } from './typeDef.class';
|
|
|
9
9
|
export declare class NamespaceDef extends AbstractContainerElement implements ContainerElement {
|
|
10
10
|
constructor(name: string);
|
|
11
11
|
nestedContainer(name: string, configure: (def: ContainerElement) => void): ContainerElement;
|
|
12
|
+
createStatement(statement: string): void;
|
|
12
13
|
defineInterface(name: string, configure?: (def: InterfaceDef) => void): InterfaceDef;
|
|
13
14
|
defineType(name: string, value: string): TypeDef;
|
|
14
15
|
defineClass(name: string, args: Arguments, configure?: (def: ClassDef) => void): ClassDef;
|