@coolon/i18n-resource-generator 1.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/.editorconfig +15 -0
- package/CHANGELOG.md +6 -0
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/build/main/index.d.ts +1 -0
- package/build/main/index.js +7 -0
- package/build/main/lib/arg.class.d.ts +11 -0
- package/build/main/lib/arg.class.js +27 -0
- package/build/main/lib/arguments.class.d.ts +20 -0
- package/build/main/lib/arguments.class.js +55 -0
- package/build/main/lib/ast/abstractContainerElement.d.ts +9 -0
- package/build/main/lib/ast/abstractContainerElement.js +31 -0
- package/build/main/lib/ast/abstractElement.d.ts +16 -0
- package/build/main/lib/ast/abstractElement.js +39 -0
- package/build/main/lib/ast/classDef.class.d.ts +9 -0
- package/build/main/lib/ast/classDef.class.js +25 -0
- package/build/main/lib/ast/containerElement.class.d.ts +17 -0
- package/build/main/lib/ast/containerElement.class.js +3 -0
- package/build/main/lib/ast/element.class.d.ts +12 -0
- package/build/main/lib/ast/element.class.js +3 -0
- package/build/main/lib/ast/functionDef.class.d.ts +10 -0
- package/build/main/lib/ast/functionDef.class.js +16 -0
- package/build/main/lib/ast/interfaceDef.class.d.ts +9 -0
- package/build/main/lib/ast/interfaceDef.class.js +26 -0
- package/build/main/lib/ast/moduleDef.class.d.ts +8 -0
- package/build/main/lib/ast/moduleDef.class.js +42 -0
- package/build/main/lib/ast/namespaceDef.class.d.ts +18 -0
- package/build/main/lib/ast/namespaceDef.class.js +63 -0
- package/build/main/lib/ast/objectDef.class.d.ts +24 -0
- package/build/main/lib/ast/objectDef.class.js +69 -0
- package/build/main/lib/ast/tempContainer.class.d.ts +4 -0
- package/build/main/lib/ast/tempContainer.class.js +12 -0
- package/build/main/lib/ast/typeDef.class.d.ts +7 -0
- package/build/main/lib/ast/typeDef.class.js +14 -0
- package/build/main/lib/bin/cli.d.ts +2 -0
- package/build/main/lib/bin/cli.js +54 -0
- package/build/main/lib/constructor.class.d.ts +3 -0
- package/build/main/lib/constructor.class.js +3 -0
- package/build/main/lib/customTypeArrayNode.class.d.ts +10 -0
- package/build/main/lib/customTypeArrayNode.class.js +25 -0
- package/build/main/lib/customTypeNode.class.d.ts +23 -0
- package/build/main/lib/customTypeNode.class.js +71 -0
- package/build/main/lib/enumNode.class.d.ts +10 -0
- package/build/main/lib/enumNode.class.js +108 -0
- package/build/main/lib/i18nGenerator.d.ts +18 -0
- package/build/main/lib/i18nGenerator.js +135 -0
- package/build/main/lib/i18nNode.class.d.ts +43 -0
- package/build/main/lib/i18nNode.class.js +145 -0
- package/build/main/lib/index.d.ts +31 -0
- package/build/main/lib/index.js +34 -0
- package/build/main/lib/languageNode.class.d.ts +7 -0
- package/build/main/lib/languageNode.class.js +16 -0
- package/build/main/lib/namespaceNode.class.d.ts +6 -0
- package/build/main/lib/namespaceNode.class.js +16 -0
- package/build/main/lib/rootNode.class.d.ts +15 -0
- package/build/main/lib/rootNode.class.js +46 -0
- package/build/main/lib/stringUtil.d.ts +1 -0
- package/build/main/lib/stringUtil.js +7 -0
- package/build/main/lib/textArrayNode.class.d.ts +9 -0
- package/build/main/lib/textArrayNode.class.js +48 -0
- package/build/main/lib/textNode.class.d.ts +17 -0
- package/build/main/lib/textNode.class.js +117 -0
- package/build/main/lib/valueNode.class.d.ts +12 -0
- package/build/main/lib/valueNode.class.js +47 -0
- package/build/main/lib/writer.class.d.ts +10 -0
- package/build/main/lib/writer.class.js +29 -0
- package/build/module/index.d.ts +1 -0
- package/build/module/index.js +2 -0
- package/build/module/lib/arg.class.d.ts +11 -0
- package/build/module/lib/arg.class.js +24 -0
- package/build/module/lib/arguments.class.d.ts +20 -0
- package/build/module/lib/arguments.class.js +52 -0
- package/build/module/lib/ast/abstractContainerElement.d.ts +9 -0
- package/build/module/lib/ast/abstractContainerElement.js +21 -0
- package/build/module/lib/ast/abstractElement.d.ts +16 -0
- package/build/module/lib/ast/abstractElement.js +36 -0
- package/build/module/lib/ast/classDef.class.d.ts +9 -0
- package/build/module/lib/ast/classDef.class.js +22 -0
- package/build/module/lib/ast/containerElement.class.d.ts +17 -0
- package/build/module/lib/ast/containerElement.class.js +1 -0
- package/build/module/lib/ast/element.class.d.ts +12 -0
- package/build/module/lib/ast/element.class.js +1 -0
- package/build/module/lib/ast/functionDef.class.d.ts +10 -0
- package/build/module/lib/ast/functionDef.class.js +13 -0
- package/build/module/lib/ast/interfaceDef.class.d.ts +9 -0
- package/build/module/lib/ast/interfaceDef.class.js +23 -0
- package/build/module/lib/ast/moduleDef.class.d.ts +8 -0
- package/build/module/lib/ast/moduleDef.class.js +39 -0
- package/build/module/lib/ast/namespaceDef.class.d.ts +18 -0
- package/build/module/lib/ast/namespaceDef.class.js +60 -0
- package/build/module/lib/ast/objectDef.class.d.ts +24 -0
- package/build/module/lib/ast/objectDef.class.js +59 -0
- package/build/module/lib/ast/tempContainer.class.d.ts +4 -0
- package/build/module/lib/ast/tempContainer.class.js +9 -0
- package/build/module/lib/ast/typeDef.class.d.ts +7 -0
- package/build/module/lib/ast/typeDef.class.js +11 -0
- package/build/module/lib/bin/cli.d.ts +2 -0
- package/build/module/lib/bin/cli.js +42 -0
- package/build/module/lib/constructor.class.d.ts +3 -0
- package/build/module/lib/constructor.class.js +1 -0
- package/build/module/lib/customTypeArrayNode.class.d.ts +10 -0
- package/build/module/lib/customTypeArrayNode.class.js +22 -0
- package/build/module/lib/customTypeNode.class.d.ts +23 -0
- package/build/module/lib/customTypeNode.class.js +68 -0
- package/build/module/lib/enumNode.class.d.ts +10 -0
- package/build/module/lib/enumNode.class.js +105 -0
- package/build/module/lib/i18nGenerator.d.ts +18 -0
- package/build/module/lib/i18nGenerator.js +124 -0
- package/build/module/lib/i18nNode.class.d.ts +43 -0
- package/build/module/lib/i18nNode.class.js +132 -0
- package/build/module/lib/index.d.ts +31 -0
- package/build/module/lib/index.js +29 -0
- package/build/module/lib/languageNode.class.d.ts +7 -0
- package/build/module/lib/languageNode.class.js +13 -0
- package/build/module/lib/namespaceNode.class.d.ts +6 -0
- package/build/module/lib/namespaceNode.class.js +13 -0
- package/build/module/lib/rootNode.class.d.ts +15 -0
- package/build/module/lib/rootNode.class.js +43 -0
- package/build/module/lib/stringUtil.d.ts +1 -0
- package/build/module/lib/stringUtil.js +4 -0
- package/build/module/lib/textArrayNode.class.d.ts +9 -0
- package/build/module/lib/textArrayNode.class.js +38 -0
- package/build/module/lib/textNode.class.d.ts +17 -0
- package/build/module/lib/textNode.class.js +104 -0
- package/build/module/lib/valueNode.class.d.ts +12 -0
- package/build/module/lib/valueNode.class.js +37 -0
- package/build/module/lib/writer.class.d.ts +10 -0
- package/build/module/lib/writer.class.js +26 -0
- package/package.json +122 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# http://editorconfig.org
|
|
2
|
+
root = true
|
|
3
|
+
|
|
4
|
+
[*]
|
|
5
|
+
charset = utf-8
|
|
6
|
+
end_of_line = lf
|
|
7
|
+
indent_size = 2
|
|
8
|
+
indent_style = space
|
|
9
|
+
insert_final_newline = true
|
|
10
|
+
max_line_length = 80
|
|
11
|
+
trim_trailing_whitespace = true
|
|
12
|
+
|
|
13
|
+
[*.md]
|
|
14
|
+
max_line_length = 0
|
|
15
|
+
trim_trailing_whitespace = false
|
package/CHANGELOG.md
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Andrew Pietsch
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function __export(m) {
|
|
3
|
+
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
4
|
+
}
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
__export(require("./lib"));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQkFBc0IifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class Arg {
|
|
2
|
+
private _argName;
|
|
3
|
+
private _argType;
|
|
4
|
+
readonly formatName: string;
|
|
5
|
+
private _formatValue;
|
|
6
|
+
constructor(name: string, type: string);
|
|
7
|
+
readonly argName: string;
|
|
8
|
+
readonly argType: string;
|
|
9
|
+
readonly formatValue: string;
|
|
10
|
+
asBooleanOptionNamed(name: string): this;
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Arg {
|
|
4
|
+
constructor(name, type) {
|
|
5
|
+
this._argName = name;
|
|
6
|
+
this._argType = type;
|
|
7
|
+
this.formatName = name;
|
|
8
|
+
this._formatValue = this.argName;
|
|
9
|
+
}
|
|
10
|
+
get argName() {
|
|
11
|
+
return this._argName;
|
|
12
|
+
}
|
|
13
|
+
get argType() {
|
|
14
|
+
return this._argType;
|
|
15
|
+
}
|
|
16
|
+
get formatValue() {
|
|
17
|
+
return this._formatValue;
|
|
18
|
+
}
|
|
19
|
+
asBooleanOptionNamed(name) {
|
|
20
|
+
this._argName = name;
|
|
21
|
+
this._argType = 'boolean';
|
|
22
|
+
this._formatValue = `(${this.argName} ? '${name}' : '!${name}')`;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.Arg = Arg;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJnLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcmcuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFhLEdBQUc7SUFPWixZQUFZLElBQVcsRUFBRSxJQUFXO1FBRWhDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBVztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFFLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sT0FBTyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBakNELGtCQWlDQyJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Arg } from "./arg.class";
|
|
2
|
+
export declare class Arguments {
|
|
3
|
+
static create(name: string, type: string): Arguments;
|
|
4
|
+
static empty(): EmptyArgs;
|
|
5
|
+
private args;
|
|
6
|
+
constructor(args?: Arg[]);
|
|
7
|
+
add(arg: Arg): void;
|
|
8
|
+
asParameterDeclaration(): string;
|
|
9
|
+
asConstructorParameters(visibility?: 'public' | 'private' | 'protected'): string;
|
|
10
|
+
asArgsObject(): string;
|
|
11
|
+
asArray(): Arg[];
|
|
12
|
+
merge(other: Arguments): void;
|
|
13
|
+
any(): boolean;
|
|
14
|
+
private canAdd;
|
|
15
|
+
}
|
|
16
|
+
declare class EmptyArgs extends Arguments {
|
|
17
|
+
constructor();
|
|
18
|
+
merge(other: Arguments): Arguments;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const arg_class_1 = require("./arg.class");
|
|
4
|
+
class Arguments {
|
|
5
|
+
static create(name, type) {
|
|
6
|
+
return new Arguments([new arg_class_1.Arg(name, type)]);
|
|
7
|
+
}
|
|
8
|
+
static empty() {
|
|
9
|
+
return emptyArgs;
|
|
10
|
+
}
|
|
11
|
+
constructor(args) {
|
|
12
|
+
this.args = args || [];
|
|
13
|
+
}
|
|
14
|
+
add(arg) {
|
|
15
|
+
if (this.canAdd(arg)) {
|
|
16
|
+
this.args.push(arg);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
asParameterDeclaration() {
|
|
20
|
+
return this.args.map(arg => `${arg.argName}:${arg.argType}`).join(', ');
|
|
21
|
+
}
|
|
22
|
+
asConstructorParameters(visibility = 'protected') {
|
|
23
|
+
return this.args.map(arg => `${visibility} ${arg.argName}:${arg.argType}`).join(', ');
|
|
24
|
+
}
|
|
25
|
+
asArgsObject() {
|
|
26
|
+
return `{${this.args.map(arg => `'${arg.formatName}':${arg.formatValue}`).join(', ')}}`;
|
|
27
|
+
}
|
|
28
|
+
asArray() {
|
|
29
|
+
return this.args;
|
|
30
|
+
}
|
|
31
|
+
merge(other) {
|
|
32
|
+
other.args.forEach(arg => this.add(arg));
|
|
33
|
+
}
|
|
34
|
+
any() {
|
|
35
|
+
return this.args.length > 0;
|
|
36
|
+
}
|
|
37
|
+
canAdd(arg) {
|
|
38
|
+
const existing = this.args.find(it => it.argName == arg.argName);
|
|
39
|
+
if (existing && existing.argType != arg.argType) {
|
|
40
|
+
throw new Error(`arg with the same name and different type exists. Exiting type is ${existing.argType}`);
|
|
41
|
+
}
|
|
42
|
+
return !existing;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Arguments = Arguments;
|
|
46
|
+
class EmptyArgs extends Arguments {
|
|
47
|
+
constructor() {
|
|
48
|
+
super([]);
|
|
49
|
+
}
|
|
50
|
+
merge(other) {
|
|
51
|
+
throw new Error(`'illegal state, can't call Arguments.empty().merge()`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const emptyArgs = new EmptyArgs();
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hcmd1bWVudHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSwyQ0FBZ0M7QUFFaEMsTUFBYSxTQUFTO0lBRWxCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBVyxFQUFFLElBQVc7UUFDbEMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksZUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1IsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUlELFlBQVksSUFBVztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFPO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3RCO0lBQ0wsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsYUFBNEMsV0FBVztRQUMzRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUE7SUFDM0YsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFnQjtRQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBUTtRQUNuQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtTQUMzRztRQUNELE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBckRELDhCQXFEQztBQUVELE1BQU0sU0FBVSxTQUFRLFNBQVM7SUFDN0I7UUFDSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBR0QsS0FBSyxDQUFDLEtBQWdCO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUM1RSxDQUFDO0NBQ0o7QUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Element } from "./element.class";
|
|
2
|
+
import { AbstractElement } from "./abstractElement";
|
|
3
|
+
import { Constructor } from "../constructor.class";
|
|
4
|
+
export declare abstract class AbstractContainerElement extends AbstractElement {
|
|
5
|
+
private children;
|
|
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;
|
|
8
|
+
allOfType<T extends Element>(type: Constructor<T>): T[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
|
+
if (mod && mod.__esModule) return mod;
|
|
4
|
+
var result = {};
|
|
5
|
+
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
|
6
|
+
result["default"] = mod;
|
|
7
|
+
return result;
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const _ = __importStar(require("lodash"));
|
|
11
|
+
const abstractElement_1 = require("./abstractElement");
|
|
12
|
+
class AbstractContainerElement extends abstractElement_1.AbstractElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.children = [];
|
|
16
|
+
}
|
|
17
|
+
addElement(child, func) {
|
|
18
|
+
this.children.push(child);
|
|
19
|
+
child.setParent(this);
|
|
20
|
+
func && func(child);
|
|
21
|
+
return child;
|
|
22
|
+
}
|
|
23
|
+
forEach(type, callback) {
|
|
24
|
+
this.allOfType(type).forEach(child => callback(child));
|
|
25
|
+
}
|
|
26
|
+
allOfType(type) {
|
|
27
|
+
return _.filter(this.children, child => child instanceof type);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.AbstractContainerElement = AbstractContainerElement;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RDb250YWluZXJFbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvYWJzdHJhY3RDb250YWluZXJFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUU1Qix1REFBa0Q7QUFJbEQsTUFBc0Isd0JBQXlCLFNBQVEsaUNBQWU7SUFBdEU7O1FBRVksYUFBUSxHQUFjLEVBQUUsQ0FBQztJQWlCckMsQ0FBQztJQWZHLFVBQVUsQ0FBb0IsS0FBUSxFQUFFLElBQXVCO1FBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxDQUFvQixJQUFvQixFQUFFLFFBQTJCO1FBQ3hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVELFNBQVMsQ0FBb0IsSUFBb0I7UUFDN0MsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFRLENBQUM7SUFDMUUsQ0FBQztDQUVKO0FBbkJELDREQW1CQyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { Element } from "./element.class";
|
|
3
|
+
export declare abstract class AbstractElement implements Element {
|
|
4
|
+
private readonly _name;
|
|
5
|
+
private _parent;
|
|
6
|
+
constructor(_name: string);
|
|
7
|
+
readonly name: string;
|
|
8
|
+
setParent(parent: Element): void;
|
|
9
|
+
readonly parent: Element;
|
|
10
|
+
isRoot(): boolean;
|
|
11
|
+
pathToRoot(): Element[];
|
|
12
|
+
pathTo(parent: Element): Element[];
|
|
13
|
+
rootElement(): Element;
|
|
14
|
+
parentPath(): Element[];
|
|
15
|
+
abstract writeBody(writer: Writer): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class AbstractElement {
|
|
4
|
+
constructor(_name) {
|
|
5
|
+
this._name = _name;
|
|
6
|
+
}
|
|
7
|
+
get name() {
|
|
8
|
+
return this._name;
|
|
9
|
+
}
|
|
10
|
+
setParent(parent) {
|
|
11
|
+
this._parent = parent;
|
|
12
|
+
}
|
|
13
|
+
get parent() {
|
|
14
|
+
return this._parent;
|
|
15
|
+
}
|
|
16
|
+
isRoot() {
|
|
17
|
+
return !this.parent;
|
|
18
|
+
}
|
|
19
|
+
pathToRoot() {
|
|
20
|
+
return this.isRoot() ? [this] : this.parent.pathToRoot().concat(this);
|
|
21
|
+
}
|
|
22
|
+
pathTo(parent) {
|
|
23
|
+
const fullPath = this.pathToRoot();
|
|
24
|
+
const parentIndex = fullPath.indexOf(parent);
|
|
25
|
+
if (parentIndex < 0) {
|
|
26
|
+
throw new Error('element not a parent');
|
|
27
|
+
}
|
|
28
|
+
return fullPath.slice(parentIndex);
|
|
29
|
+
}
|
|
30
|
+
rootElement() {
|
|
31
|
+
const path = this.parentPath();
|
|
32
|
+
return path[path.length - 1];
|
|
33
|
+
}
|
|
34
|
+
parentPath() {
|
|
35
|
+
return this.isRoot() ? [] : this.parent.parentPath().concat(this.parent);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.AbstractElement = AbstractElement;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RFbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvYWJzdHJhY3RFbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBc0IsZUFBZTtJQUlqQyxZQUE2QixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztJQUN6QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBZTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFjO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBSUo7QUEvQ0QsMENBK0NDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { Arguments } from "../arguments.class";
|
|
3
|
+
import { AbstractContainerElement } from "./abstractContainerElement";
|
|
4
|
+
export declare class ClassDef extends AbstractContainerElement {
|
|
5
|
+
readonly args: Arguments;
|
|
6
|
+
constructor(name: string, args: Arguments);
|
|
7
|
+
createFunction(name: string, args: Arguments, returnType: string, bodyContent: (def: Writer) => void): void;
|
|
8
|
+
writeBody(writer: Writer): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const abstractContainerElement_1 = require("./abstractContainerElement");
|
|
4
|
+
const functionDef_class_1 = require("./functionDef.class");
|
|
5
|
+
class ClassDef extends abstractContainerElement_1.AbstractContainerElement {
|
|
6
|
+
constructor(name, args) {
|
|
7
|
+
super(name);
|
|
8
|
+
this.args = args;
|
|
9
|
+
}
|
|
10
|
+
createFunction(name, args, returnType, bodyContent) {
|
|
11
|
+
this.addElement(new functionDef_class_1.FunctionDef(name, args, returnType, bodyContent));
|
|
12
|
+
}
|
|
13
|
+
writeBody(writer) {
|
|
14
|
+
if (this.args.any()) {
|
|
15
|
+
writer.println(`constructor(${this.args.asConstructorParameters('protected')}) {}`);
|
|
16
|
+
}
|
|
17
|
+
this.forEach(functionDef_class_1.FunctionDef, def => {
|
|
18
|
+
writer.println(`${def.name}(${def.args.asParameterDeclaration()}):${def.returnType} {`);
|
|
19
|
+
writer.indent(writer => def.writeBody(writer));
|
|
20
|
+
writer.println('}');
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ClassDef = ClassDef;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NEZWYuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2FzdC9jbGFzc0RlZi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHlFQUFvRTtBQUNwRSwyREFBZ0Q7QUFFaEQsTUFBYSxRQUFTLFNBQVEsbURBQXdCO0lBRWxELFlBQVksSUFBVyxFQUFrQixJQUFjO1FBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUR5QixTQUFJLEdBQUosSUFBSSxDQUFVO0lBRXZELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWSxFQUFFLElBQWUsRUFBRSxVQUFrQixFQUFFLFdBQWtDO1FBQ2hHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSwrQkFBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDekUsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBRXBCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkY7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLCtCQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7Q0FDSjtBQXZCRCw0QkF1QkMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { ClassDef } from "./classDef.class";
|
|
3
|
+
import { InterfaceDef } from "./interfaceDef.class";
|
|
4
|
+
import { ObjectDef } from "./objectDef.class";
|
|
5
|
+
import { Arguments } from "../arguments.class";
|
|
6
|
+
import { Element } from "./element.class";
|
|
7
|
+
import { Constructor } from "../constructor.class";
|
|
8
|
+
export interface ContainerElement extends Element {
|
|
9
|
+
nestedContainer(name: string, configure: (context: ContainerElement) => void): void;
|
|
10
|
+
defineInterface(name: string, configure?: (def: InterfaceDef) => void): InterfaceDef;
|
|
11
|
+
defineClass(name: string, args: Arguments, configure?: (def: ClassDef) => void): ClassDef;
|
|
12
|
+
createObject(name: string, configure?: (def: ObjectDef) => void): ObjectDef;
|
|
13
|
+
createFunction(name: string, args: Arguments, returnType: string, configure: (def: Writer) => void): any;
|
|
14
|
+
defineType(name: string, value: string): any;
|
|
15
|
+
forEach<T extends Element>(type: Constructor<T>, callback: (item: T) => void): any;
|
|
16
|
+
allOfType<T extends Element>(type: Constructor<T>): T[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyRWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L2NvbnRhaW5lckVsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
export interface Element {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
setParent(context: Element): void;
|
|
5
|
+
readonly parent: Element;
|
|
6
|
+
pathToRoot(): Element[];
|
|
7
|
+
parentPath(): Element[];
|
|
8
|
+
isRoot(): boolean;
|
|
9
|
+
rootElement(): Element;
|
|
10
|
+
pathTo(parent: Element): Element[];
|
|
11
|
+
writeBody(writer: Writer): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYXN0L2VsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { AbstractElement } from "./abstractElement";
|
|
3
|
+
import { Arguments } from "../arguments.class";
|
|
4
|
+
export declare class FunctionDef extends AbstractElement {
|
|
5
|
+
readonly args: Arguments;
|
|
6
|
+
readonly returnType: string;
|
|
7
|
+
readonly bodyWriter: (out: Writer) => void;
|
|
8
|
+
constructor(name: string, args: Arguments, returnType: string, bodyWriter: (out: Writer) => void);
|
|
9
|
+
writeBody(writer: Writer): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const abstractElement_1 = require("./abstractElement");
|
|
4
|
+
class FunctionDef extends abstractElement_1.AbstractElement {
|
|
5
|
+
constructor(name, args, returnType, bodyWriter) {
|
|
6
|
+
super(name);
|
|
7
|
+
this.args = args;
|
|
8
|
+
this.returnType = returnType;
|
|
9
|
+
this.bodyWriter = bodyWriter;
|
|
10
|
+
}
|
|
11
|
+
writeBody(writer) {
|
|
12
|
+
this.bodyWriter(writer);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.FunctionDef = FunctionDef;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25EZWYuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2FzdC9mdW5jdGlvbkRlZi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHVEQUFrRDtBQUdsRCxNQUFhLFdBQVksU0FBUSxpQ0FBZTtJQUM1QyxZQUFZLElBQVksRUFDSSxJQUFlLEVBQ2YsVUFBa0IsRUFDbEIsVUFBaUM7UUFDekQsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBSFksU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7SUFFN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUdKO0FBYkQsa0NBYUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { Arguments } from "../arguments.class";
|
|
3
|
+
import { AbstractContainerElement } from "./abstractContainerElement";
|
|
4
|
+
export declare class InterfaceDef extends AbstractContainerElement {
|
|
5
|
+
constructor(name: string);
|
|
6
|
+
createFunction(name: string, args: Arguments, returnType: string): void;
|
|
7
|
+
createObject(name: string, type: string): void;
|
|
8
|
+
writeBody(writer: Writer): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const functionDef_class_1 = require("./functionDef.class");
|
|
4
|
+
const abstractContainerElement_1 = require("./abstractContainerElement");
|
|
5
|
+
const objectDef_class_1 = require("./objectDef.class");
|
|
6
|
+
class InterfaceDef extends abstractContainerElement_1.AbstractContainerElement {
|
|
7
|
+
constructor(name) {
|
|
8
|
+
super(name);
|
|
9
|
+
}
|
|
10
|
+
createFunction(name, args, returnType) {
|
|
11
|
+
this.addElement(new functionDef_class_1.FunctionDef(name, args, returnType, (out) => { }));
|
|
12
|
+
}
|
|
13
|
+
createObject(name, type) {
|
|
14
|
+
this.addElement(new objectDef_class_1.ObjectDef(name).asType(type || 'any'));
|
|
15
|
+
}
|
|
16
|
+
writeBody(writer) {
|
|
17
|
+
this.forEach(functionDef_class_1.FunctionDef, def => {
|
|
18
|
+
writer.println(`${def.name}(${def.args.asParameterDeclaration()}):${def.returnType};`);
|
|
19
|
+
});
|
|
20
|
+
this.forEach(objectDef_class_1.ObjectDef, def => {
|
|
21
|
+
writer.println(`${def.name}:${def.typeName()};`);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.InterfaceDef = InterfaceDef;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlRGVmLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvaW50ZXJmYWNlRGVmLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsMkRBQWdEO0FBQ2hELHlFQUFvRTtBQUNwRSx1REFBNEM7QUFFNUMsTUFBYSxZQUFhLFNBQVEsbURBQXdCO0lBRXRELFlBQVksSUFBWTtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsSUFBZSxFQUFFLFVBQWtCO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSwrQkFBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pGLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLDJCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLCtCQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0o7QUF0QkQsb0NBc0JDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { NamespaceDef } from "./namespaceDef.class";
|
|
3
|
+
export declare class Module extends NamespaceDef {
|
|
4
|
+
constructor();
|
|
5
|
+
addHeader(line: string): void;
|
|
6
|
+
addImport(line: string): void;
|
|
7
|
+
writeBody(writer: Writer): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const namespaceDef_class_1 = require("./namespaceDef.class");
|
|
4
|
+
const abstractElement_1 = require("./abstractElement");
|
|
5
|
+
class HeaderLine extends abstractElement_1.AbstractElement {
|
|
6
|
+
constructor(line) {
|
|
7
|
+
super('');
|
|
8
|
+
this.line = line;
|
|
9
|
+
}
|
|
10
|
+
writeBody(writer) {
|
|
11
|
+
writer.println(this.line);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
class ImportLine extends abstractElement_1.AbstractElement {
|
|
15
|
+
constructor(line) {
|
|
16
|
+
super('');
|
|
17
|
+
this.line = line;
|
|
18
|
+
}
|
|
19
|
+
writeBody(writer) {
|
|
20
|
+
writer.println(`${this.line};`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class Module extends namespaceDef_class_1.NamespaceDef {
|
|
24
|
+
constructor() {
|
|
25
|
+
super('');
|
|
26
|
+
}
|
|
27
|
+
addHeader(line) {
|
|
28
|
+
this.addElement(new HeaderLine(line));
|
|
29
|
+
}
|
|
30
|
+
addImport(line) {
|
|
31
|
+
this.addElement(new ImportLine(line));
|
|
32
|
+
}
|
|
33
|
+
writeBody(writer) {
|
|
34
|
+
this.forEach(HeaderLine, line => line.writeBody(writer));
|
|
35
|
+
writer.println('');
|
|
36
|
+
this.forEach(ImportLine, line => line.writeBody(writer));
|
|
37
|
+
writer.println('');
|
|
38
|
+
super.writeBody(writer);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Module = Module;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlRGVmLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvbW9kdWxlRGVmLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsNkRBQWtEO0FBR2xELHVEQUFrRDtBQU1sRCxNQUFNLFVBQVcsU0FBUSxpQ0FBZTtJQUNwQyxZQUFvQixJQUFXO1FBQzNCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQURNLFNBQUksR0FBSixJQUFJLENBQU87SUFFL0IsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzdCLENBQUM7Q0FDSjtBQUNELE1BQU0sVUFBVyxTQUFRLGlDQUFlO0lBQ3BDLFlBQW9CLElBQVc7UUFDM0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRE0sU0FBSSxHQUFKLElBQUksQ0FBTztJQUUvQixDQUFDO0lBQ0QsU0FBUyxDQUFDLE1BQWM7UUFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ25DLENBQUM7Q0FDSjtBQUVELE1BQWEsTUFBTyxTQUFRLGlDQUFZO0lBRXBDO1FBQ0ksS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFXO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVc7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0o7QUFyQkQsd0JBcUJDIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ClassDef } from "./classDef.class";
|
|
2
|
+
import { InterfaceDef } from "./interfaceDef.class";
|
|
3
|
+
import { ObjectDef } from "./objectDef.class";
|
|
4
|
+
import { Writer } from "../writer.class";
|
|
5
|
+
import { AbstractContainerElement } from "./abstractContainerElement";
|
|
6
|
+
import { ContainerElement } from "./containerElement.class";
|
|
7
|
+
import { Arguments } from "../arguments.class";
|
|
8
|
+
import { TypeDef } from "./typeDef.class";
|
|
9
|
+
export declare class NamespaceDef extends AbstractContainerElement implements ContainerElement {
|
|
10
|
+
constructor(name: string);
|
|
11
|
+
nestedContainer(name: string, configure: (def: ContainerElement) => void): ContainerElement;
|
|
12
|
+
defineInterface(name: string, configure?: (def: InterfaceDef) => void): InterfaceDef;
|
|
13
|
+
defineType(name: string, value: string): TypeDef;
|
|
14
|
+
defineClass(name: string, args: Arguments, configure?: (def: ClassDef) => void): ClassDef;
|
|
15
|
+
createObject(name: string, configure?: (def: ObjectDef) => void): ObjectDef;
|
|
16
|
+
createFunction(name: string, args: Arguments, returnType: string, bodyContent: (def: Writer) => void): void;
|
|
17
|
+
writeBody(writer: Writer): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const classDef_class_1 = require("./classDef.class");
|
|
4
|
+
const interfaceDef_class_1 = require("./interfaceDef.class");
|
|
5
|
+
const objectDef_class_1 = require("./objectDef.class");
|
|
6
|
+
const abstractContainerElement_1 = require("./abstractContainerElement");
|
|
7
|
+
const functionDef_class_1 = require("./functionDef.class");
|
|
8
|
+
const typeDef_class_1 = require("./typeDef.class");
|
|
9
|
+
class NamespaceDef extends abstractContainerElement_1.AbstractContainerElement {
|
|
10
|
+
constructor(name) {
|
|
11
|
+
super(name);
|
|
12
|
+
}
|
|
13
|
+
nestedContainer(name, configure) {
|
|
14
|
+
return this.addElement(new NamespaceDef(name), configure);
|
|
15
|
+
}
|
|
16
|
+
defineInterface(name, configure) {
|
|
17
|
+
return this.addElement(new interfaceDef_class_1.InterfaceDef(name), configure);
|
|
18
|
+
}
|
|
19
|
+
defineType(name, value) {
|
|
20
|
+
return this.addElement(new typeDef_class_1.TypeDef(name, value));
|
|
21
|
+
}
|
|
22
|
+
defineClass(name, args, configure) {
|
|
23
|
+
return this.addElement(new classDef_class_1.ClassDef(name, args), configure);
|
|
24
|
+
}
|
|
25
|
+
createObject(name, configure) {
|
|
26
|
+
return this.addElement(new objectDef_class_1.ObjectDef(name), configure);
|
|
27
|
+
}
|
|
28
|
+
createFunction(name, args, returnType, bodyContent) {
|
|
29
|
+
this.addElement(new functionDef_class_1.FunctionDef(name, args, returnType, bodyContent));
|
|
30
|
+
}
|
|
31
|
+
writeBody(writer) {
|
|
32
|
+
this.forEach(typeDef_class_1.TypeDef, def => {
|
|
33
|
+
writer.println(`export type ${def.name} = ${def.value};`);
|
|
34
|
+
});
|
|
35
|
+
this.forEach(interfaceDef_class_1.InterfaceDef, def => {
|
|
36
|
+
writer.println(`export interface ${def.name} {`);
|
|
37
|
+
writer.indent(writer => def.writeBody(writer));
|
|
38
|
+
writer.println('}');
|
|
39
|
+
});
|
|
40
|
+
this.forEach(classDef_class_1.ClassDef, def => {
|
|
41
|
+
writer.println(`export class ${def.name} {`);
|
|
42
|
+
writer.indent(writer => def.writeBody(writer));
|
|
43
|
+
writer.println('}');
|
|
44
|
+
});
|
|
45
|
+
this.forEach(functionDef_class_1.FunctionDef, def => {
|
|
46
|
+
writer.println(`export function ${def.name}(${def.args.asParameterDeclaration()}):${def.returnType} {`);
|
|
47
|
+
writer.indent(writer => def.writeBody(writer));
|
|
48
|
+
writer.println('}');
|
|
49
|
+
});
|
|
50
|
+
this.forEach(objectDef_class_1.ObjectDef, def => {
|
|
51
|
+
writer.println(`export const ${def.name} = {`);
|
|
52
|
+
writer.indent(writer => def.writeBody(writer));
|
|
53
|
+
writer.println(`}${def.asTypeDecl()};`);
|
|
54
|
+
});
|
|
55
|
+
this.forEach(NamespaceDef, def => {
|
|
56
|
+
writer.println(`export namespace ${def.name} {`);
|
|
57
|
+
writer.indent(writer => def.writeBody(writer));
|
|
58
|
+
writer.println('}');
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.NamespaceDef = NamespaceDef;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlRGVmLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hc3QvbmFtZXNwYWNlRGVmLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQTBDO0FBQzFDLDZEQUFrRDtBQUNsRCx1REFBNEM7QUFFNUMseUVBQW9FO0FBRXBFLDJEQUFnRDtBQUVoRCxtREFBd0M7QUFFeEMsTUFBYSxZQUFhLFNBQVEsbURBQXdCO0lBRXRELFlBQVksSUFBWTtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZLEVBQUUsU0FBMEM7UUFDcEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWSxFQUFFLFNBQXVDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLGlDQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsS0FBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSx1QkFBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWSxFQUFFLElBQWUsRUFBRSxTQUFtQztRQUMxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSx5QkFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVksRUFBRSxTQUFvQztRQUMzRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSwyQkFBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMs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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Writer } from "../writer.class";
|
|
2
|
+
import { ContainerElement } from "./containerElement.class";
|
|
3
|
+
import { AbstractContainerElement } from "./abstractContainerElement";
|
|
4
|
+
import { InterfaceDef } from "./interfaceDef.class";
|
|
5
|
+
import { ClassDef } from "./classDef.class";
|
|
6
|
+
import { Arguments } from "../arguments.class";
|
|
7
|
+
import { NamespaceDef } from "./namespaceDef.class";
|
|
8
|
+
import { TypeDef } from "./typeDef.class";
|
|
9
|
+
export declare class ObjectDef extends AbstractContainerElement implements ContainerElement {
|
|
10
|
+
private _typeName;
|
|
11
|
+
constructor(name: string);
|
|
12
|
+
asType(typeName: string): this;
|
|
13
|
+
typeName(): string;
|
|
14
|
+
nestedContainer(name: string, configure: (context: ContainerElement) => void): void;
|
|
15
|
+
defineInterface(name: string, configure: (def: InterfaceDef) => void): InterfaceDef;
|
|
16
|
+
defineClass(name: string, args: Arguments, configure: (def: ClassDef) => void): ClassDef;
|
|
17
|
+
defineType(name: string, value: string): TypeDef;
|
|
18
|
+
createObject(name: string, configure: (def: ObjectDef) => void): ObjectDef;
|
|
19
|
+
createFunction(name: string, args: Arguments, returnType: string, bodyContent: (def: Writer) => void): void;
|
|
20
|
+
protected nearestNamespace(): NamespaceDef;
|
|
21
|
+
protected fqName(rawName: string): string;
|
|
22
|
+
asTypeDecl(): string;
|
|
23
|
+
writeBody(writer: Writer): void;
|
|
24
|
+
}
|