@goast/typescript 0.0.4 → 0.2.0
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/assets/{service → client}/angular/request-builder.ts +6 -2
- package/assets/client/fetch/{url-builder.ts → fetch-client.utils.ts} +15 -0
- package/assets/stubs/easy-network-stub/easy-network-stub.utils.ts +235 -0
- package/cjs/lib/ast/_index.js +108 -0
- package/cjs/lib/ast/common.js +2 -0
- package/cjs/lib/ast/index.js +5 -0
- package/cjs/lib/ast/node.js +10 -0
- package/cjs/lib/ast/nodes/argument.js +20 -0
- package/cjs/lib/ast/nodes/array-type.js +27 -0
- package/cjs/lib/ast/nodes/arrow-function.js +51 -0
- package/cjs/lib/ast/nodes/call.js +26 -0
- package/cjs/lib/ast/nodes/class.js +70 -0
- package/cjs/lib/ast/nodes/constructor-parameter.js +46 -0
- package/cjs/lib/ast/nodes/constructor.js +42 -0
- package/cjs/lib/ast/nodes/decorator.js +38 -0
- package/cjs/lib/ast/nodes/doc-tag.js +64 -0
- package/cjs/lib/ast/nodes/doc.js +57 -0
- package/cjs/lib/ast/nodes/enum-value.js +35 -0
- package/cjs/lib/ast/nodes/enum.js +46 -0
- package/cjs/lib/ast/nodes/export.js +27 -0
- package/cjs/lib/ast/nodes/function-type.js +35 -0
- package/cjs/lib/ast/nodes/function.js +60 -0
- package/cjs/lib/ast/nodes/generic-parameter.js +40 -0
- package/cjs/lib/ast/nodes/indexer.js +32 -0
- package/cjs/lib/ast/nodes/interface.js +60 -0
- package/cjs/lib/ast/nodes/intersection-type.js +44 -0
- package/cjs/lib/ast/nodes/lookup-type.js +30 -0
- package/cjs/lib/ast/nodes/method.js +82 -0
- package/cjs/lib/ast/nodes/object-type.js +24 -0
- package/cjs/lib/ast/nodes/object.js +24 -0
- package/cjs/lib/ast/nodes/parameter.js +45 -0
- package/cjs/lib/ast/nodes/property-accessor.js +128 -0
- package/cjs/lib/ast/nodes/property.js +119 -0
- package/cjs/lib/ast/nodes/reference.js +63 -0
- package/cjs/lib/ast/nodes/string.js +30 -0
- package/cjs/lib/ast/nodes/tuple.js +28 -0
- package/cjs/lib/ast/nodes/type-alias.js +36 -0
- package/cjs/lib/ast/nodes/typeof.js +23 -0
- package/cjs/lib/ast/nodes/types.js +2 -0
- package/cjs/lib/ast/nodes/union-type.js +44 -0
- package/cjs/lib/ast/nodes/variable.js +38 -0
- package/cjs/lib/ast/references/angular.js +12 -0
- package/cjs/lib/ast/references/easy-network-stub.js +8 -0
- package/cjs/lib/ast/references/index.js +7 -0
- package/cjs/lib/ast/references/rxjs.js +9 -0
- package/cjs/lib/ast/references/typescript.js +33 -0
- package/cjs/lib/ast/utils/get-type-script-builder-options.js +19 -0
- package/cjs/lib/ast/utils/to-ts-node.js +24 -0
- package/cjs/lib/ast/utils/write-ts-generic-parameters.js +11 -0
- package/cjs/lib/ast/utils/write-ts-members.js +18 -0
- package/cjs/lib/ast/utils/write-ts-nodes.js +24 -0
- package/cjs/lib/ast/utils/write-ts-parameters.js +14 -0
- package/cjs/lib/config.js +5 -3
- package/cjs/lib/file-builder.js +45 -202
- package/cjs/lib/generators/file-generator.js +2 -18
- package/cjs/lib/generators/index.js +1 -0
- package/cjs/lib/generators/models/model-generator.js +144 -205
- package/cjs/lib/generators/models/models-generator.js +12 -26
- package/cjs/lib/generators/models/models.js +1 -1
- package/cjs/lib/generators/services/angular-services/angular-service-generator.js +183 -306
- package/cjs/lib/generators/services/angular-services/angular-services-generator.js +168 -76
- package/cjs/lib/generators/services/angular-services/models.js +10 -1
- package/cjs/lib/generators/services/angular-services/refs.js +24 -0
- package/cjs/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +169 -0
- package/cjs/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +73 -0
- package/cjs/lib/generators/services/easy-network-stub/index.js +6 -0
- package/cjs/lib/generators/services/easy-network-stub/models.js +10 -0
- package/cjs/lib/generators/services/easy-network-stub/refs.js +21 -0
- package/cjs/lib/generators/services/fetch-clients/fetch-client-generator.js +126 -180
- package/cjs/lib/generators/services/fetch-clients/fetch-clients-generator.js +5 -1
- package/cjs/lib/generators/services/fetch-clients/refs.js +17 -0
- package/cjs/lib/import-collection.js +18 -19
- package/esm/lib/ast/_index.js +37 -0
- package/esm/lib/ast/common.js +1 -0
- package/esm/lib/ast/index.js +2 -0
- package/esm/lib/ast/node.js +6 -0
- package/esm/lib/ast/nodes/argument.js +16 -0
- package/esm/lib/ast/nodes/array-type.js +23 -0
- package/esm/lib/ast/nodes/arrow-function.js +47 -0
- package/esm/lib/ast/nodes/call.js +22 -0
- package/esm/lib/ast/nodes/class.js +66 -0
- package/esm/lib/ast/nodes/constructor-parameter.js +42 -0
- package/esm/lib/ast/nodes/constructor.js +38 -0
- package/esm/lib/ast/nodes/decorator.js +34 -0
- package/esm/lib/ast/nodes/doc-tag.js +60 -0
- package/esm/lib/ast/nodes/doc.js +53 -0
- package/esm/lib/ast/nodes/enum-value.js +31 -0
- package/esm/lib/ast/nodes/enum.js +42 -0
- package/esm/lib/ast/nodes/export.js +22 -0
- package/esm/lib/ast/nodes/function-type.js +31 -0
- package/esm/lib/ast/nodes/function.js +56 -0
- package/esm/lib/ast/nodes/generic-parameter.js +36 -0
- package/esm/lib/ast/nodes/indexer.js +28 -0
- package/esm/lib/ast/nodes/interface.js +56 -0
- package/esm/lib/ast/nodes/intersection-type.js +40 -0
- package/esm/lib/ast/nodes/lookup-type.js +26 -0
- package/esm/lib/ast/nodes/method.js +77 -0
- package/esm/lib/ast/nodes/object-type.js +20 -0
- package/esm/lib/ast/nodes/object.js +20 -0
- package/esm/lib/ast/nodes/parameter.js +41 -0
- package/esm/lib/ast/nodes/property-accessor.js +121 -0
- package/esm/lib/ast/nodes/property.js +113 -0
- package/esm/lib/ast/nodes/reference.js +59 -0
- package/esm/lib/ast/nodes/string.js +26 -0
- package/esm/lib/ast/nodes/tuple.js +24 -0
- package/esm/lib/ast/nodes/type-alias.js +32 -0
- package/esm/lib/ast/nodes/typeof.js +18 -0
- package/esm/lib/ast/nodes/types.js +1 -0
- package/esm/lib/ast/nodes/union-type.js +40 -0
- package/esm/lib/ast/nodes/variable.js +34 -0
- package/esm/lib/ast/references/angular.js +9 -0
- package/esm/lib/ast/references/easy-network-stub.js +5 -0
- package/esm/lib/ast/references/index.js +5 -0
- package/esm/lib/ast/references/rxjs.js +6 -0
- package/esm/lib/ast/references/typescript.js +30 -0
- package/esm/lib/ast/utils/get-type-script-builder-options.js +15 -0
- package/esm/lib/ast/utils/to-ts-node.js +20 -0
- package/esm/lib/ast/utils/write-ts-generic-parameters.js +7 -0
- package/esm/lib/ast/utils/write-ts-members.js +14 -0
- package/esm/lib/ast/utils/write-ts-nodes.js +19 -0
- package/esm/lib/ast/utils/write-ts-parameters.js +10 -0
- package/esm/lib/config.js +5 -3
- package/esm/lib/file-builder.js +44 -202
- package/esm/lib/generators/file-generator.js +2 -18
- package/esm/lib/generators/index.js +1 -0
- package/esm/lib/generators/models/model-generator.js +149 -210
- package/esm/lib/generators/models/models-generator.js +15 -29
- package/esm/lib/generators/models/models.js +1 -1
- package/esm/lib/generators/services/angular-services/angular-service-generator.js +186 -309
- package/esm/lib/generators/services/angular-services/angular-services-generator.js +170 -78
- package/esm/lib/generators/services/angular-services/models.js +10 -1
- package/esm/lib/generators/services/angular-services/refs.js +20 -0
- package/esm/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +165 -0
- package/esm/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +69 -0
- package/esm/lib/generators/services/easy-network-stub/index.js +3 -0
- package/esm/lib/generators/services/easy-network-stub/models.js +7 -0
- package/esm/lib/generators/services/easy-network-stub/refs.js +17 -0
- package/esm/lib/generators/services/fetch-clients/fetch-client-generator.js +128 -182
- package/esm/lib/generators/services/fetch-clients/fetch-clients-generator.js +5 -1
- package/esm/lib/generators/services/fetch-clients/refs.js +13 -0
- package/esm/lib/import-collection.js +17 -18
- package/package.json +6 -6
- package/types/lib/ast/_index.d.ts +38 -0
- package/types/lib/ast/common.d.ts +1 -0
- package/types/lib/ast/index.d.ts +1 -0
- package/types/lib/ast/node.d.ts +4 -0
- package/types/lib/ast/nodes/argument.d.ts +17 -0
- package/types/lib/ast/nodes/array-type.d.ts +19 -0
- package/types/lib/ast/nodes/arrow-function.d.ts +29 -0
- package/types/lib/ast/nodes/call.d.ts +20 -0
- package/types/lib/ast/nodes/class.d.ts +41 -0
- package/types/lib/ast/nodes/constructor-parameter.d.ts +19 -0
- package/types/lib/ast/nodes/constructor.d.ts +25 -0
- package/types/lib/ast/nodes/decorator.d.ts +22 -0
- package/types/lib/ast/nodes/doc-tag.d.ts +73 -0
- package/types/lib/ast/nodes/doc.d.ts +28 -0
- package/types/lib/ast/nodes/enum-value.d.ts +21 -0
- package/types/lib/ast/nodes/enum.d.ts +26 -0
- package/types/lib/ast/nodes/export.d.ts +19 -0
- package/types/lib/ast/nodes/function-type.d.ts +23 -0
- package/types/lib/ast/nodes/function.d.ts +35 -0
- package/types/lib/ast/nodes/generic-parameter.d.ts +25 -0
- package/types/lib/ast/nodes/indexer.d.ts +23 -0
- package/types/lib/ast/nodes/interface.d.ts +36 -0
- package/types/lib/ast/nodes/intersection-type.d.ts +17 -0
- package/types/lib/ast/nodes/lookup-type.d.ts +19 -0
- package/types/lib/ast/nodes/method.d.ts +45 -0
- package/types/lib/ast/nodes/object-type.d.ts +20 -0
- package/types/lib/ast/nodes/object.d.ts +19 -0
- package/types/lib/ast/nodes/parameter.d.ts +28 -0
- package/types/lib/ast/nodes/property-accessor.d.ts +53 -0
- package/types/lib/ast/nodes/property.d.ts +84 -0
- package/types/lib/ast/nodes/reference.d.ts +46 -0
- package/types/lib/ast/nodes/string.d.ts +18 -0
- package/types/lib/ast/nodes/tuple.d.ts +17 -0
- package/types/lib/ast/nodes/type-alias.d.ts +27 -0
- package/types/lib/ast/nodes/typeof.d.ts +18 -0
- package/types/lib/ast/nodes/types.d.ts +18 -0
- package/types/lib/ast/nodes/union-type.d.ts +17 -0
- package/types/lib/ast/nodes/variable.d.ts +28 -0
- package/types/lib/ast/references/angular.d.ts +37 -0
- package/types/lib/ast/references/easy-network-stub.d.ts +26 -0
- package/types/lib/ast/references/index.d.ts +3 -0
- package/types/lib/ast/references/rxjs.d.ts +30 -0
- package/types/lib/ast/references/typescript.d.ts +133 -0
- package/types/lib/ast/utils/get-type-script-builder-options.d.ts +3 -0
- package/types/lib/ast/utils/to-ts-node.d.ts +8 -0
- package/types/lib/ast/utils/write-ts-generic-parameters.d.ts +3 -0
- package/types/lib/ast/utils/write-ts-members.d.ts +5 -0
- package/types/lib/ast/utils/write-ts-nodes.d.ts +6 -0
- package/types/lib/ast/utils/write-ts-parameters.d.ts +3 -0
- package/types/lib/common-results.d.ts +4 -0
- package/types/lib/config.d.ts +5 -2
- package/types/lib/file-builder.d.ts +21 -98
- package/types/lib/generators/file-generator.d.ts +3 -7
- package/types/lib/generators/index.d.ts +1 -0
- package/types/lib/generators/models/model-generator.d.ts +18 -23
- package/types/lib/generators/models/models-generator.d.ts +4 -5
- package/types/lib/generators/models/models.d.ts +4 -4
- package/types/lib/generators/services/angular-services/angular-service-generator.d.ts +15 -35
- package/types/lib/generators/services/angular-services/angular-services-generator.d.ts +12 -10
- package/types/lib/generators/services/angular-services/models.d.ts +67 -22
- package/types/lib/generators/services/angular-services/refs.d.ts +34 -0
- package/types/lib/generators/services/easy-network-stub/easy-network-stub-generator.d.ts +32 -0
- package/types/lib/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts +25 -0
- package/types/lib/generators/services/easy-network-stub/index.d.ts +3 -0
- package/types/lib/generators/services/easy-network-stub/models.d.ts +51 -0
- package/types/lib/generators/services/easy-network-stub/refs.d.ts +49 -0
- package/types/lib/generators/services/fetch-clients/fetch-client-generator.d.ts +11 -22
- package/types/lib/generators/services/fetch-clients/models.d.ts +4 -1
- package/types/lib/generators/services/fetch-clients/refs.d.ts +23 -0
- package/types/lib/import-collection.d.ts +13 -5
- package/assets/client/fetch/types.ts +0 -9
- package/assets/service/angular/api-configuration.ts +0 -18
- package/assets/service/angular/base-service.ts +0 -29
- package/assets/service/angular/response-handlers.ts +0 -127
- package/assets/service/angular/strict-http-response.ts +0 -8
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsMethod = exports.createMethod = exports.TsMethod = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const decorator_1 = require("./decorator");
|
|
6
|
+
const doc_1 = require("./doc");
|
|
7
|
+
const generic_parameter_1 = require("./generic-parameter");
|
|
8
|
+
const object_1 = require("./object");
|
|
9
|
+
const parameter_1 = require("./parameter");
|
|
10
|
+
const node_1 = require("../node");
|
|
11
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
12
|
+
class TsMethod extends node_1.TsNode {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
15
|
+
super(options);
|
|
16
|
+
this.doc = (_a = options.doc) !== null && _a !== void 0 ? _a : null;
|
|
17
|
+
this.decorators = (_c = (_b = options.decorators) === null || _b === void 0 ? void 0 : _b.filter(core_1.notNullish)) !== null && _c !== void 0 ? _c : [];
|
|
18
|
+
this.accessModifier = (_d = options.accessModifier) !== null && _d !== void 0 ? _d : null;
|
|
19
|
+
this.static = (_e = options.static) !== null && _e !== void 0 ? _e : false;
|
|
20
|
+
this.abstract = (_f = options.abstract) !== null && _f !== void 0 ? _f : false;
|
|
21
|
+
this.override = (_g = options.override) !== null && _g !== void 0 ? _g : false;
|
|
22
|
+
this.name = options.name;
|
|
23
|
+
this.optional = (_h = options.optional) !== null && _h !== void 0 ? _h : false;
|
|
24
|
+
this.generics = (_k = (_j = options.generics) === null || _j === void 0 ? void 0 : _j.filter(core_1.notNullish)) !== null && _k !== void 0 ? _k : [];
|
|
25
|
+
this.parameters = (_m = (_l = options.parameters) === null || _l === void 0 ? void 0 : _l.filter(core_1.notNullish)) !== null && _m !== void 0 ? _m : [];
|
|
26
|
+
this.returnType = (_o = options.returnType) !== null && _o !== void 0 ? _o : null;
|
|
27
|
+
this.body = (_p = options.body) !== null && _p !== void 0 ? _p : null;
|
|
28
|
+
}
|
|
29
|
+
onWrite(builder) {
|
|
30
|
+
const isInObjectDeclaration = this.getParentNode(builder) instanceof object_1.TsObject;
|
|
31
|
+
builder.append(this.inject.beforeDoc);
|
|
32
|
+
doc_1.tsDoc.write(builder, doc_1.tsDoc.get(this.doc, { generics: this.generics, parameters: this.parameters }));
|
|
33
|
+
builder.append(this.inject.afterDoc);
|
|
34
|
+
builder.append(this.inject.beforeDecorators);
|
|
35
|
+
decorator_1.tsDecorator.write(builder, this.decorators, { multiline: true });
|
|
36
|
+
builder.append(this.inject.afterDecorators);
|
|
37
|
+
builder.append(this.inject.beforeModifiers);
|
|
38
|
+
if (this.accessModifier)
|
|
39
|
+
builder.append(this.accessModifier, ' ');
|
|
40
|
+
if (this.static)
|
|
41
|
+
builder.append('static ');
|
|
42
|
+
if (this.abstract)
|
|
43
|
+
builder.append('abstract ');
|
|
44
|
+
if (this.override)
|
|
45
|
+
builder.append('override ');
|
|
46
|
+
builder.append(this.inject.afterModifiers);
|
|
47
|
+
builder.append(this.inject.beforeName, this.name, this.inject.afterName);
|
|
48
|
+
if (this.optional)
|
|
49
|
+
builder.append('?');
|
|
50
|
+
builder.append(this.inject.beforeGenerics);
|
|
51
|
+
generic_parameter_1.tsGenericParameter.write(builder, this.generics);
|
|
52
|
+
builder.append(this.inject.afterGenerics);
|
|
53
|
+
builder.append(this.inject.beforeParams);
|
|
54
|
+
parameter_1.tsParameter.write(builder, this.parameters);
|
|
55
|
+
builder.append(this.inject.afterParams);
|
|
56
|
+
if (this.returnType) {
|
|
57
|
+
builder.append(': ');
|
|
58
|
+
builder.append(this.inject.beforeReturnType);
|
|
59
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.returnType);
|
|
60
|
+
builder.append(this.inject.afterReturnType);
|
|
61
|
+
}
|
|
62
|
+
if (this.body) {
|
|
63
|
+
builder.append(' ');
|
|
64
|
+
builder.append(this.inject.beforeBody);
|
|
65
|
+
builder.parenthesize('{}', this.body, { multiline: !!this.body });
|
|
66
|
+
builder.append(this.inject.afterBody);
|
|
67
|
+
}
|
|
68
|
+
else if (!isInObjectDeclaration) {
|
|
69
|
+
builder.append(';');
|
|
70
|
+
}
|
|
71
|
+
if (isInObjectDeclaration) {
|
|
72
|
+
builder.append(',');
|
|
73
|
+
}
|
|
74
|
+
builder.appendLine();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.TsMethod = TsMethod;
|
|
78
|
+
const createMethod = (name, options) => new TsMethod(Object.assign(Object.assign({}, options), { name }));
|
|
79
|
+
exports.createMethod = createMethod;
|
|
80
|
+
exports.tsMethod = Object.assign(exports.createMethod, {
|
|
81
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
82
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsObjectType = exports.TsObjectType = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const node_1 = require("../node");
|
|
6
|
+
const write_ts_members_1 = require("../utils/write-ts-members");
|
|
7
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
8
|
+
class TsObjectType extends node_1.TsNode {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
super(options);
|
|
12
|
+
this.members = (_b = (_a = options.members) === null || _a === void 0 ? void 0 : _a.filter(core_1.notNullish)) !== null && _b !== void 0 ? _b : [];
|
|
13
|
+
}
|
|
14
|
+
onWrite(builder) {
|
|
15
|
+
builder.parenthesize('{}', (b) => {
|
|
16
|
+
(0, write_ts_members_1.writeTsMembers)(b, this.members);
|
|
17
|
+
}, { multiline: this.members.length > 0 });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.TsObjectType = TsObjectType;
|
|
21
|
+
const createObjectType = (options) => new TsObjectType(options !== null && options !== void 0 ? options : {});
|
|
22
|
+
exports.tsObjectType = Object.assign(createObjectType, {
|
|
23
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
24
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsObject = exports.TsObject = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const node_1 = require("../node");
|
|
6
|
+
const write_ts_members_1 = require("../utils/write-ts-members");
|
|
7
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
8
|
+
class TsObject extends node_1.TsNode {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
super(options);
|
|
12
|
+
this.members = (_b = (_a = options.members) === null || _a === void 0 ? void 0 : _a.filter(core_1.notNullish)) !== null && _b !== void 0 ? _b : [];
|
|
13
|
+
}
|
|
14
|
+
onWrite(builder) {
|
|
15
|
+
builder.parenthesize('{}', (b) => {
|
|
16
|
+
(0, write_ts_members_1.writeTsMembers)(b, this.members);
|
|
17
|
+
}, { multiline: this.members.length > 0 });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.TsObject = TsObject;
|
|
21
|
+
const createObject = (options) => new TsObject(options !== null && options !== void 0 ? options : {});
|
|
22
|
+
exports.tsObject = Object.assign(createObject, {
|
|
23
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
24
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsParameter = exports.TsParameter = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const decorator_1 = require("./decorator");
|
|
6
|
+
const node_1 = require("../node");
|
|
7
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
8
|
+
const write_ts_parameters_1 = require("../utils/write-ts-parameters");
|
|
9
|
+
class TsParameter extends node_1.TsNode {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12
|
+
super(options);
|
|
13
|
+
this.name = options.name;
|
|
14
|
+
this.description = (_a = options.description) !== null && _a !== void 0 ? _a : null;
|
|
15
|
+
this.decorators = (_c = (_b = options.decorators) === null || _b === void 0 ? void 0 : _b.filter(core_1.notNullish)) !== null && _c !== void 0 ? _c : [];
|
|
16
|
+
this.type = (_d = options.type) !== null && _d !== void 0 ? _d : null;
|
|
17
|
+
this.optional = (_e = options.optional) !== null && _e !== void 0 ? _e : false;
|
|
18
|
+
this.default = (_f = options.default) !== null && _f !== void 0 ? _f : null;
|
|
19
|
+
}
|
|
20
|
+
onWrite(builder) {
|
|
21
|
+
builder.append(this.inject.beforeDecorators);
|
|
22
|
+
decorator_1.tsDecorator.write(builder, this.decorators);
|
|
23
|
+
builder.append(this.inject.afterDecorators);
|
|
24
|
+
builder.append(this.inject.beforeName, this.name, this.inject.afterName);
|
|
25
|
+
if (this.optional)
|
|
26
|
+
builder.append('?');
|
|
27
|
+
if (this.type) {
|
|
28
|
+
builder.append(': ');
|
|
29
|
+
builder.append(this.inject.beforeType);
|
|
30
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.type);
|
|
31
|
+
builder.append(this.inject.afterType);
|
|
32
|
+
}
|
|
33
|
+
if (this.default) {
|
|
34
|
+
builder.append(' = ');
|
|
35
|
+
builder.append(this.inject.beforeDefault);
|
|
36
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.default);
|
|
37
|
+
builder.append(this.inject.afterDefault);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.TsParameter = TsParameter;
|
|
42
|
+
const createParameter = (name, options) => new TsParameter(Object.assign(Object.assign({}, options), { name }));
|
|
43
|
+
exports.tsParameter = Object.assign(createParameter, {
|
|
44
|
+
write: write_ts_parameters_1.writeTsParameters,
|
|
45
|
+
});
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPropertyGetter = exports.createPropertySetter = exports.TsPropertyGetter = exports.TsPropertySetter = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const decorator_1 = require("./decorator");
|
|
6
|
+
const doc_1 = require("./doc");
|
|
7
|
+
const node_1 = require("../node");
|
|
8
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
9
|
+
class TsPropertyAccessor extends node_1.TsNode {
|
|
10
|
+
get propertyName() {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
return (_c = (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this._propertyName) !== null && _c !== void 0 ? _c : 'someProperty';
|
|
13
|
+
}
|
|
14
|
+
set propertyName(value) {
|
|
15
|
+
this._propertyName = value;
|
|
16
|
+
}
|
|
17
|
+
get type() {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
return (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : this._type;
|
|
20
|
+
}
|
|
21
|
+
set type(value) {
|
|
22
|
+
this._type = value;
|
|
23
|
+
}
|
|
24
|
+
get accessModifier() {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
return (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.accessModifier) !== null && _b !== void 0 ? _b : this._accessModifier;
|
|
27
|
+
}
|
|
28
|
+
set accessModifier(value) {
|
|
29
|
+
this._accessModifier = value;
|
|
30
|
+
}
|
|
31
|
+
get static() {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
return (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.static) !== null && _b !== void 0 ? _b : this._static;
|
|
34
|
+
}
|
|
35
|
+
set static(value) {
|
|
36
|
+
this._static = value;
|
|
37
|
+
}
|
|
38
|
+
get abstract() {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
return (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.abstract) !== null && _b !== void 0 ? _b : this._abstract;
|
|
41
|
+
}
|
|
42
|
+
set abstract(value) {
|
|
43
|
+
this._abstract = value;
|
|
44
|
+
}
|
|
45
|
+
get override() {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
return (_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.override) !== null && _b !== void 0 ? _b : this._override;
|
|
48
|
+
}
|
|
49
|
+
set override(value) {
|
|
50
|
+
this._override = value;
|
|
51
|
+
}
|
|
52
|
+
constructor(options) {
|
|
53
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
54
|
+
super(options);
|
|
55
|
+
this._propertyName = (_a = options.propertyName) !== null && _a !== void 0 ? _a : null;
|
|
56
|
+
this.doc = (_b = options.doc) !== null && _b !== void 0 ? _b : null;
|
|
57
|
+
this._type = (_c = options.type) !== null && _c !== void 0 ? _c : null;
|
|
58
|
+
this.decorators = (_e = (_d = options.decorators) === null || _d === void 0 ? void 0 : _d.filter(core_1.notNullish)) !== null && _e !== void 0 ? _e : [];
|
|
59
|
+
this.body = (_f = options.body) !== null && _f !== void 0 ? _f : null;
|
|
60
|
+
this._accessModifier = (_g = options.accessModifier) !== null && _g !== void 0 ? _g : null;
|
|
61
|
+
this._static = (_h = options.static) !== null && _h !== void 0 ? _h : false;
|
|
62
|
+
this._abstract = (_j = options.abstract) !== null && _j !== void 0 ? _j : false;
|
|
63
|
+
this._override = (_k = options.override) !== null && _k !== void 0 ? _k : false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
class TsPropertySetter extends TsPropertyAccessor {
|
|
67
|
+
onWrite(builder) {
|
|
68
|
+
doc_1.tsDoc.write(builder, this.doc);
|
|
69
|
+
decorator_1.tsDecorator.write(builder, this.decorators);
|
|
70
|
+
if (this.accessModifier)
|
|
71
|
+
builder.append(this.accessModifier, ' ');
|
|
72
|
+
if (this.static)
|
|
73
|
+
builder.append('static ');
|
|
74
|
+
if (this.abstract)
|
|
75
|
+
builder.append('abstract ');
|
|
76
|
+
if (this.override)
|
|
77
|
+
builder.append('override ');
|
|
78
|
+
builder.append('set ', this.propertyName);
|
|
79
|
+
builder.parenthesize('()', (b) => {
|
|
80
|
+
b.append('value');
|
|
81
|
+
if (this.type !== null) {
|
|
82
|
+
b.append(': ');
|
|
83
|
+
(0, write_ts_nodes_1.writeTsNode)(b, this.type);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
if (this.body !== null) {
|
|
87
|
+
builder.append(' ');
|
|
88
|
+
builder.parenthesize('{}', this.body, { multiline: true });
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
builder.append(';');
|
|
92
|
+
}
|
|
93
|
+
builder.appendLine();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.TsPropertySetter = TsPropertySetter;
|
|
97
|
+
class TsPropertyGetter extends TsPropertyAccessor {
|
|
98
|
+
onWrite(builder) {
|
|
99
|
+
doc_1.tsDoc.write(builder, this.doc);
|
|
100
|
+
decorator_1.tsDecorator.write(builder, this.decorators);
|
|
101
|
+
if (this.accessModifier)
|
|
102
|
+
builder.append(this.accessModifier, ' ');
|
|
103
|
+
if (this.static)
|
|
104
|
+
builder.append('static ');
|
|
105
|
+
if (this.abstract)
|
|
106
|
+
builder.append('abstract ');
|
|
107
|
+
if (this.override)
|
|
108
|
+
builder.append('override ');
|
|
109
|
+
builder.append('get ', this.propertyName, '()');
|
|
110
|
+
if (this.type) {
|
|
111
|
+
builder.append(': ');
|
|
112
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.type);
|
|
113
|
+
}
|
|
114
|
+
if (this.body !== null) {
|
|
115
|
+
builder.append(' ');
|
|
116
|
+
builder.parenthesize('{}', this.body, { multiline: true });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
builder.append(';');
|
|
120
|
+
}
|
|
121
|
+
builder.appendLine();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.TsPropertyGetter = TsPropertyGetter;
|
|
125
|
+
const createPropertySetter = (options) => new TsPropertySetter(options !== null && options !== void 0 ? options : {});
|
|
126
|
+
exports.createPropertySetter = createPropertySetter;
|
|
127
|
+
const createPropertyGetter = (options) => new TsPropertyGetter(options !== null && options !== void 0 ? options : {});
|
|
128
|
+
exports.createPropertyGetter = createPropertyGetter;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsProperty = exports.TsAccessorProperty = exports.TsSimpleProperty = exports.TsProperty = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const decorator_1 = require("./decorator");
|
|
6
|
+
const doc_1 = require("./doc");
|
|
7
|
+
const object_1 = require("./object");
|
|
8
|
+
const property_accessor_1 = require("./property-accessor");
|
|
9
|
+
const string_1 = require("./string");
|
|
10
|
+
const node_1 = require("../node");
|
|
11
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
12
|
+
class TsProperty extends node_1.TsNode {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
15
|
+
super(options);
|
|
16
|
+
this.name = options.name;
|
|
17
|
+
this.doc = (_a = options.doc) !== null && _a !== void 0 ? _a : null;
|
|
18
|
+
this.decorators = (_c = (_b = options.decorators) === null || _b === void 0 ? void 0 : _b.filter(core_1.notNullish)) !== null && _c !== void 0 ? _c : [];
|
|
19
|
+
this.type = (_d = options.type) !== null && _d !== void 0 ? _d : null;
|
|
20
|
+
this.accessModifier = (_e = options.accessModifier) !== null && _e !== void 0 ? _e : null;
|
|
21
|
+
this.static = (_f = options.static) !== null && _f !== void 0 ? _f : null;
|
|
22
|
+
this.abstract = (_g = options.abstract) !== null && _g !== void 0 ? _g : null;
|
|
23
|
+
this.override = (_h = options.override) !== null && _h !== void 0 ? _h : null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TsProperty = TsProperty;
|
|
27
|
+
class TsSimpleProperty extends TsProperty {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
super(options);
|
|
31
|
+
this.value = (_a = options.value) !== null && _a !== void 0 ? _a : null;
|
|
32
|
+
this.readonly = (_b = options.readonly) !== null && _b !== void 0 ? _b : false;
|
|
33
|
+
this.optional = (_c = options.optional) !== null && _c !== void 0 ? _c : false;
|
|
34
|
+
}
|
|
35
|
+
onWrite(builder) {
|
|
36
|
+
const isInObjectDeclaration = this.getParentNode(builder) instanceof object_1.TsObject;
|
|
37
|
+
doc_1.tsDoc.write(builder, this.doc);
|
|
38
|
+
decorator_1.tsDecorator.write(builder, this.decorators);
|
|
39
|
+
if (this.accessModifier)
|
|
40
|
+
builder.append(this.accessModifier, ' ');
|
|
41
|
+
if (this.static)
|
|
42
|
+
builder.append('static ');
|
|
43
|
+
if (this.abstract)
|
|
44
|
+
builder.append('abstract ');
|
|
45
|
+
if (this.override)
|
|
46
|
+
builder.append('override ');
|
|
47
|
+
if (this.readonly)
|
|
48
|
+
builder.append('readonly ');
|
|
49
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, /^([a-zA-Z_$][a-zA-Z_$0-9]*|[0-9]+)$/.test(this.name) ? this.name : (0, string_1.tsString)(this.name));
|
|
50
|
+
if (this.optional)
|
|
51
|
+
builder.append('?');
|
|
52
|
+
if (this.type && !isInObjectDeclaration) {
|
|
53
|
+
builder.append(': ');
|
|
54
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.type);
|
|
55
|
+
}
|
|
56
|
+
if (this.value) {
|
|
57
|
+
builder.append(isInObjectDeclaration ? ': ' : ' = ');
|
|
58
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.value);
|
|
59
|
+
}
|
|
60
|
+
builder.append(isInObjectDeclaration ? ',' : ';');
|
|
61
|
+
builder.appendLine();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.TsSimpleProperty = TsSimpleProperty;
|
|
65
|
+
class TsAccessorProperty extends TsProperty {
|
|
66
|
+
get get() {
|
|
67
|
+
return this._get;
|
|
68
|
+
}
|
|
69
|
+
set get(value) {
|
|
70
|
+
if (value) {
|
|
71
|
+
value['property'] = this;
|
|
72
|
+
}
|
|
73
|
+
if (this._get) {
|
|
74
|
+
this._get['property'] = undefined;
|
|
75
|
+
}
|
|
76
|
+
this._get = value;
|
|
77
|
+
}
|
|
78
|
+
get set() {
|
|
79
|
+
return this._set;
|
|
80
|
+
}
|
|
81
|
+
set set(value) {
|
|
82
|
+
if (value) {
|
|
83
|
+
value['property'] = this;
|
|
84
|
+
}
|
|
85
|
+
if (this._set) {
|
|
86
|
+
this._set['property'] = undefined;
|
|
87
|
+
}
|
|
88
|
+
this._set = value;
|
|
89
|
+
}
|
|
90
|
+
constructor(options) {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
super(options);
|
|
93
|
+
this._get = null;
|
|
94
|
+
this._set = null;
|
|
95
|
+
this.get = (_a = options.get) !== null && _a !== void 0 ? _a : null;
|
|
96
|
+
this.set = (_b = options.set) !== null && _b !== void 0 ? _b : null;
|
|
97
|
+
}
|
|
98
|
+
onWrite(builder) {
|
|
99
|
+
builder.append((b) => doc_1.tsDoc.write(b, this.doc), (b) => decorator_1.tsDecorator.write(b, this.decorators));
|
|
100
|
+
if (this.get) {
|
|
101
|
+
this.get.write(builder);
|
|
102
|
+
}
|
|
103
|
+
if (this.set) {
|
|
104
|
+
this.set.write(builder);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.TsAccessorProperty = TsAccessorProperty;
|
|
109
|
+
const createProperty = (name, options) => {
|
|
110
|
+
if (options && ('get' in options || 'set' in options)) {
|
|
111
|
+
return new TsAccessorProperty(Object.assign(Object.assign({}, options), { name }));
|
|
112
|
+
}
|
|
113
|
+
return new TsSimpleProperty(Object.assign(Object.assign({}, options), { name }));
|
|
114
|
+
};
|
|
115
|
+
exports.tsProperty = Object.assign(createProperty, {
|
|
116
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
117
|
+
getter: property_accessor_1.createPropertyGetter,
|
|
118
|
+
setter: property_accessor_1.createPropertySetter,
|
|
119
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsReference = exports.TsReference = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const file_builder_1 = require("../../file-builder");
|
|
6
|
+
const node_1 = require("../node");
|
|
7
|
+
const write_ts_generic_parameters_1 = require("../utils/write-ts-generic-parameters");
|
|
8
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
9
|
+
class TsReference extends node_1.TsNode {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
super(options);
|
|
13
|
+
this.name = options.name;
|
|
14
|
+
this.moduleNameOrfilePath = (_a = options.moduleNameOrfilePath) !== null && _a !== void 0 ? _a : null;
|
|
15
|
+
this.generics = (_c = (_b = options.generics) === null || _b === void 0 ? void 0 : _b.filter(core_1.notNullish)) !== null && _c !== void 0 ? _c : [];
|
|
16
|
+
}
|
|
17
|
+
onWrite(builder) {
|
|
18
|
+
builder.append(this.name);
|
|
19
|
+
(0, write_ts_generic_parameters_1.writeTsGenericParameters)(builder, this.generics);
|
|
20
|
+
if (this.moduleNameOrfilePath) {
|
|
21
|
+
const handler = TsReference.addImportHandlers.find((h) => builder instanceof h.builderClass);
|
|
22
|
+
if (handler) {
|
|
23
|
+
handler.handler(builder, this);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static registerAddImportHandler(builderClass, handler) {
|
|
28
|
+
TsReference.addImportHandlers.push({ builderClass, handler });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.TsReference = TsReference;
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
TsReference.addImportHandlers = [
|
|
34
|
+
{
|
|
35
|
+
builderClass: file_builder_1.TypeScriptFileBuilder,
|
|
36
|
+
handler: (builder, reference) => builder.addImport(reference.name, reference.moduleNameOrfilePath),
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
const createReference = (name, moduleNameOrfilePath, options) => new TsReference(Object.assign(Object.assign({}, options), { name, moduleNameOrfilePath }));
|
|
40
|
+
function _createFactory(name, moduleNameOrfilePath) {
|
|
41
|
+
return Object.assign(() => createReference(name, moduleNameOrfilePath), {
|
|
42
|
+
refName: name,
|
|
43
|
+
moduleNameOrfilePath,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function createFactory(name, moduleNameOrfilePath) {
|
|
47
|
+
return _createFactory(name, moduleNameOrfilePath);
|
|
48
|
+
}
|
|
49
|
+
function _createGenericFactory(name, moduleNameOrfilePath) {
|
|
50
|
+
return Object.assign((generics) => createReference(name, moduleNameOrfilePath, { generics }), {
|
|
51
|
+
refName: name,
|
|
52
|
+
moduleNameOrfilePath,
|
|
53
|
+
infer: () => createReference(name, moduleNameOrfilePath),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function createGenericFactory(name, moduleNameOrfilePath) {
|
|
57
|
+
return _createGenericFactory(name, moduleNameOrfilePath);
|
|
58
|
+
}
|
|
59
|
+
exports.tsReference = Object.assign(createReference, {
|
|
60
|
+
factory: createFactory,
|
|
61
|
+
genericFactory: createGenericFactory,
|
|
62
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
63
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsString = exports.TsString = void 0;
|
|
4
|
+
const node_1 = require("../node");
|
|
5
|
+
const get_type_script_builder_options_1 = require("../utils/get-type-script-builder-options");
|
|
6
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
7
|
+
class TsString extends node_1.TsNode {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
var _a;
|
|
10
|
+
super(options);
|
|
11
|
+
this.value = options.value;
|
|
12
|
+
this.template = (_a = options.template) !== null && _a !== void 0 ? _a : false;
|
|
13
|
+
}
|
|
14
|
+
onWrite(builder) {
|
|
15
|
+
const builderOptions = (0, get_type_script_builder_options_1.getTypeScriptBuilderOptions)(builder);
|
|
16
|
+
let value = JSON.stringify(this.value);
|
|
17
|
+
if (this.template) {
|
|
18
|
+
value = `\`${value.slice(1, -1).replace(/`/g, '\\`')}\``;
|
|
19
|
+
}
|
|
20
|
+
else if (builderOptions.useSingleQuotes) {
|
|
21
|
+
value = `'${value.slice(1, -1).replace(/'/g, "\\'")}'`;
|
|
22
|
+
}
|
|
23
|
+
builder.append(value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.TsString = TsString;
|
|
27
|
+
const createString = (value, options) => new TsString(Object.assign(Object.assign({}, options), { value }));
|
|
28
|
+
exports.tsString = Object.assign(createString, {
|
|
29
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
30
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsTuple = exports.TsTuple = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const node_1 = require("../node");
|
|
6
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
7
|
+
class TsTuple extends node_1.TsNode {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options);
|
|
10
|
+
this.elements = options.elements.filter(core_1.notNullish);
|
|
11
|
+
}
|
|
12
|
+
onWrite(builder) {
|
|
13
|
+
if (this.elements.length === 0) {
|
|
14
|
+
builder.append('[]');
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const multiline = this.elements.length > 3;
|
|
18
|
+
builder.parenthesize('[]', (b) => (0, write_ts_nodes_1.writeTsNodes)(b, this.elements, { separator: multiline ? ',\n' : ', ' }), {
|
|
19
|
+
multiline,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.TsTuple = TsTuple;
|
|
25
|
+
const createTuple = (elements, options) => new TsTuple(Object.assign(Object.assign({}, options), { elements }));
|
|
26
|
+
exports.tsTuple = Object.assign(createTuple, {
|
|
27
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
28
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsTypeAlias = exports.TsTypeAlias = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const generic_parameter_1 = require("./generic-parameter");
|
|
6
|
+
const node_1 = require("../node");
|
|
7
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
8
|
+
class TsTypeAlias extends node_1.TsNode {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
var _a, _b, _c, _d;
|
|
11
|
+
super(options);
|
|
12
|
+
this.name = options.name;
|
|
13
|
+
this.doc = (_a = options.doc) !== null && _a !== void 0 ? _a : null;
|
|
14
|
+
this.generics = (_c = (_b = options.generics) === null || _b === void 0 ? void 0 : _b.filter(core_1.notNullish)) !== null && _c !== void 0 ? _c : [];
|
|
15
|
+
this.type = options.type;
|
|
16
|
+
this.export = (_d = options.export) !== null && _d !== void 0 ? _d : false;
|
|
17
|
+
}
|
|
18
|
+
onWrite(builder) {
|
|
19
|
+
if (this.export)
|
|
20
|
+
builder.append('export ');
|
|
21
|
+
builder.append('type ');
|
|
22
|
+
builder.append(this.name);
|
|
23
|
+
generic_parameter_1.tsGenericParameter.write(builder, this.generics);
|
|
24
|
+
builder.append(' = ');
|
|
25
|
+
builder.indent((b) => {
|
|
26
|
+
(0, write_ts_nodes_1.writeTsNode)(b, this.type);
|
|
27
|
+
});
|
|
28
|
+
builder.append(';');
|
|
29
|
+
builder.appendLine();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.TsTypeAlias = TsTypeAlias;
|
|
33
|
+
const createTypeAlias = (name, type, options) => new TsTypeAlias(Object.assign(Object.assign({}, options), { name, type }));
|
|
34
|
+
exports.tsTypeAlias = Object.assign(createTypeAlias, {
|
|
35
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
36
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsTypeof = exports.createTypeof = exports.TsTypeof = void 0;
|
|
4
|
+
const node_1 = require("../node");
|
|
5
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
6
|
+
class TsTypeof extends node_1.TsNode {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super(options);
|
|
9
|
+
this.value = options.value;
|
|
10
|
+
}
|
|
11
|
+
onWrite(builder) {
|
|
12
|
+
builder.append('typeof ');
|
|
13
|
+
builder.append(this.inject.beforeValue);
|
|
14
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, this.value);
|
|
15
|
+
builder.append(this.inject.afterValue);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.TsTypeof = TsTypeof;
|
|
19
|
+
const createTypeof = (value, options) => new TsTypeof(Object.assign(Object.assign({}, options), { value }));
|
|
20
|
+
exports.createTypeof = createTypeof;
|
|
21
|
+
exports.tsTypeof = Object.assign(exports.createTypeof, {
|
|
22
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
23
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsUnionType = exports.TsUnionType = void 0;
|
|
4
|
+
const core_1 = require("@goast/core");
|
|
5
|
+
const node_1 = require("../node");
|
|
6
|
+
const write_ts_nodes_1 = require("../utils/write-ts-nodes");
|
|
7
|
+
class TsUnionType extends node_1.TsNode {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options);
|
|
10
|
+
this.types = options.types.filter(core_1.notNullish);
|
|
11
|
+
}
|
|
12
|
+
onWrite(builder) {
|
|
13
|
+
const types = this.types.length === 0 ? ['never'] : resolveNestedUnionTypes(this);
|
|
14
|
+
if (types.length === 1) {
|
|
15
|
+
(0, write_ts_nodes_1.writeTsNode)(builder, types[0]);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const multiline = types.length > 3;
|
|
19
|
+
if (multiline) {
|
|
20
|
+
builder.appendLine().append('| ');
|
|
21
|
+
}
|
|
22
|
+
builder.forEach(types, (b, t) => b.parenthesize('()', (b) => (0, write_ts_nodes_1.writeTsNode)(b, t)), {
|
|
23
|
+
separator: multiline ? '\n| ' : ' | ',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.TsUnionType = TsUnionType;
|
|
29
|
+
const createUnionType = (types, options) => new TsUnionType(Object.assign(Object.assign({}, options), { types }));
|
|
30
|
+
exports.tsUnionType = Object.assign(createUnionType, {
|
|
31
|
+
write: write_ts_nodes_1.writeTsNodes,
|
|
32
|
+
});
|
|
33
|
+
function resolveNestedUnionTypes(node) {
|
|
34
|
+
const types = [];
|
|
35
|
+
for (const type of node.types) {
|
|
36
|
+
if (type instanceof TsUnionType) {
|
|
37
|
+
types.push(...resolveNestedUnionTypes(type));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
types.push(type);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return types;
|
|
44
|
+
}
|