@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,20 @@
|
|
|
1
|
+
import { SourceBuilder, AstNodeOptions, Nullable, ArrayItem, Prettify } from '@goast/core';
|
|
2
|
+
import { TsArgument } from './argument';
|
|
3
|
+
import { TsType, TsValue } from './types';
|
|
4
|
+
import { TsNode } from '../node';
|
|
5
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
6
|
+
type Injects = never;
|
|
7
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
8
|
+
path: Nullable<TsType<TBuilder> | TsValue<TBuilder>>[];
|
|
9
|
+
arguments?: Nullable<Nullable<TsArgument<TBuilder> | TsValue<TBuilder>>[]>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare class TsCall<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
12
|
+
path: (TsType<TBuilder> | TsValue<TBuilder>)[];
|
|
13
|
+
arguments: (TsArgument<TBuilder> | TsValue<TBuilder>)[] | null;
|
|
14
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
15
|
+
protected onWrite(builder: TBuilder): void;
|
|
16
|
+
}
|
|
17
|
+
export declare const tsCall: (<TBuilder extends SourceBuilder<never>>(path: Options<TBuilder>['path'] | ArrayItem<Options<TBuilder>['path']>, args?: Options<TBuilder>['arguments'], options?: Prettify<Omit<Options<TBuilder>, 'path' | 'arguments'>>) => TsCall<TBuilder, never>) & {
|
|
18
|
+
write: typeof writeTsNodes;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsConstructor } from './constructor';
|
|
3
|
+
import { TsDecorator } from './decorator';
|
|
4
|
+
import { TsDoc } from './doc';
|
|
5
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
6
|
+
import { TsIndexer } from './indexer';
|
|
7
|
+
import { TsMethod } from './method';
|
|
8
|
+
import { TsProperty } from './property';
|
|
9
|
+
import { TsReference } from './reference';
|
|
10
|
+
import { TsNode } from '../node';
|
|
11
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
12
|
+
type Injects = 'doc' | 'decorators' | 'modifiers' | 'name' | 'generics' | 'extends' | 'implements' | 'body' | 'members';
|
|
13
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
14
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
15
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
16
|
+
export?: Nullable<boolean>;
|
|
17
|
+
abstract?: Nullable<boolean>;
|
|
18
|
+
name: string;
|
|
19
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
20
|
+
extends?: Nullable<TsReference<TBuilder> | BasicAppendValue<TBuilder>>;
|
|
21
|
+
implements?: Nullable<Nullable<TsReference<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
22
|
+
members?: Nullable<Nullable<Member<TBuilder>>[]>;
|
|
23
|
+
}>;
|
|
24
|
+
type Member<TBuilder extends SourceBuilder> = TsProperty<TBuilder> | TsMethod<TBuilder> | TsIndexer<TBuilder> | TsConstructor<TBuilder> | BasicAppendValue<TBuilder>;
|
|
25
|
+
export declare class TsClass<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
26
|
+
doc: TsDoc<TBuilder> | null;
|
|
27
|
+
decorators: TsDecorator<TBuilder>[];
|
|
28
|
+
export: boolean;
|
|
29
|
+
abstract: boolean;
|
|
30
|
+
name: string;
|
|
31
|
+
generics: (TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
32
|
+
extends: TsReference<TBuilder> | BasicAppendValue<TBuilder> | null;
|
|
33
|
+
implements: (TsReference<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
34
|
+
members: Member<TBuilder>[];
|
|
35
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
36
|
+
protected onWrite(builder: TBuilder): void;
|
|
37
|
+
}
|
|
38
|
+
export declare const tsClass: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsClass<TBuilder, never>) & {
|
|
39
|
+
write: typeof writeTsNodes;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsParameter } from './parameter';
|
|
3
|
+
import { TsAccessModifier } from '../common';
|
|
4
|
+
import { writeTsParameters } from '../utils/write-ts-parameters';
|
|
5
|
+
type Injects = 'modifiers';
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsParameter<TBuilder, TInjects | Injects>, {
|
|
7
|
+
accessModifier?: Nullable<TsAccessModifier>;
|
|
8
|
+
readonly?: Nullable<boolean>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare class TsConstructorParameter<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsParameter<TBuilder, TInjects | Injects> {
|
|
11
|
+
accessModifier: TsAccessModifier | null;
|
|
12
|
+
readonly: boolean;
|
|
13
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
14
|
+
protected onWrite(builder: TBuilder): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const tsConstructorParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsConstructorParameter<TBuilder, never>) & {
|
|
17
|
+
write: typeof writeTsParameters;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AppendValue, AstNodeOptions, BasicAppendValue, Nullable, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsConstructorParameter } from './constructor-parameter';
|
|
3
|
+
import { TsDecorator } from './decorator';
|
|
4
|
+
import { TsDoc } from './doc';
|
|
5
|
+
import { TsNode } from '../node';
|
|
6
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
7
|
+
type Injects = 'params' | 'doc' | 'decorators' | 'body';
|
|
8
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
9
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
10
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
11
|
+
parameters?: Nullable<Nullable<TsConstructorParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
12
|
+
body?: Nullable<AppendValue<TBuilder>>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class TsConstructor<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
15
|
+
doc: TsDoc<TBuilder> | null;
|
|
16
|
+
decorators: TsDecorator<TBuilder>[];
|
|
17
|
+
parameters: (TsConstructorParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
18
|
+
body: AppendValue<TBuilder> | null;
|
|
19
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
20
|
+
protected onWrite(builder: TBuilder): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const tsConstructor: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsConstructor<TBuilder, never>) & {
|
|
23
|
+
write: typeof writeTsNodes;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AppendValue, AstNodeOptions, BasicAppendValue, Nullable, Prettify, SingleOrMultiple, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsArgument } from './argument';
|
|
3
|
+
import { TsReference } from './reference';
|
|
4
|
+
import { TsValue } from './types';
|
|
5
|
+
import { TsNode } from '../node';
|
|
6
|
+
type Injects = 'function' | 'arguments';
|
|
7
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
8
|
+
function: TsReference<TBuilder> | BasicAppendValue<TBuilder>;
|
|
9
|
+
arguments?: Nullable<Nullable<TsArgument<TBuilder> | TsValue<TBuilder>>[]>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare class TsDecorator<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
12
|
+
function: TsReference<TBuilder> | BasicAppendValue<TBuilder>;
|
|
13
|
+
arguments: (TsArgument<TBuilder> | TsValue<TBuilder>)[] | null;
|
|
14
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
15
|
+
protected onWrite(builder: TBuilder): void;
|
|
16
|
+
}
|
|
17
|
+
export declare const tsDecorator: (<TBuilder extends SourceBuilder<never>>(fn: Options<TBuilder>['function'], args?: Options<TBuilder>['arguments'], options?: Prettify<Omit<Options<TBuilder>, 'function' | 'arguments'>>) => TsDecorator<TBuilder, never>) & {
|
|
18
|
+
write: <TBuilder_1 extends SourceBuilder<never>>(builder: TBuilder_1, nodes: SingleOrMultiple<Nullable<TsDecorator<TBuilder_1, never> | AppendValue<TBuilder_1>>>, options?: {
|
|
19
|
+
multiline?: boolean;
|
|
20
|
+
}) => void;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, ParametersWithOverloads, Prettify, SourceBuilder, StringSuggestions } from '@goast/core';
|
|
2
|
+
import { TsType } from './types';
|
|
3
|
+
import { TsNode } from '../node';
|
|
4
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
5
|
+
type Injects = never;
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
tag: string;
|
|
8
|
+
type?: Nullable<TsType<TBuilder>>;
|
|
9
|
+
text?: Nullable<BasicAppendValue<TBuilder>>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare class TsDocTag<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
12
|
+
tag: string;
|
|
13
|
+
type: TsType<TBuilder> | null;
|
|
14
|
+
text: BasicAppendValue<TBuilder> | null;
|
|
15
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
16
|
+
protected onWrite(builder: TBuilder): void;
|
|
17
|
+
}
|
|
18
|
+
type _TsDocTagOpt<TBuilder extends SourceBuilder> = Prettify<Omit<Options<TBuilder>, 'tag'>>;
|
|
19
|
+
type _TsDocTagArgsMap<TBuilder extends SourceBuilder> = {
|
|
20
|
+
access(access: StringSuggestions<'package' | 'private' | 'protected' | 'public'>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
21
|
+
author(authorName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
22
|
+
author(authorName: BasicAppendValue<TBuilder>, emailAddress: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
23
|
+
borrows(thatNamepath: BasicAppendValue<TBuilder>, thisNamepath: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
24
|
+
params(paramName: BasicAppendValue<TBuilder>, paramDescription: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
25
|
+
example(caption: BasicAppendValue<TBuilder>, code: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
26
|
+
example(code: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
27
|
+
exports(moduleName: BasicAppendValue<TBuilder>, exportName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
28
|
+
kind(kindName: StringSuggestions<'class' | 'constant' | 'event' | 'external' | 'file' | 'function' | 'member' | 'mixin' | 'module' | 'namespace' | 'typedef'>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
29
|
+
license(identifier: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
30
|
+
listens(eventName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
31
|
+
mixes(otherObjectPath: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
32
|
+
mixin(mixinName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
33
|
+
requires(moduleName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
34
|
+
variation(variationNumber: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
35
|
+
} & {
|
|
36
|
+
[K in 'virtual' | 'abstract']: (options?: _TsDocTagOpt<TBuilder>) => never;
|
|
37
|
+
} & {
|
|
38
|
+
[K in 'alias' | 'augments' | 'callback' | 'extends' | 'lends' | 'name' | 'see' | 'this']: (namePath: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>) => never;
|
|
39
|
+
} & {
|
|
40
|
+
[K in 'async' | 'generator' | 'global' | 'hideconstructor' | 'ignore' | 'inheritdoc' | 'inner' | 'instance' | 'override' | 'static' | 'enum' | 'package' | 'private' | 'protected' | 'implements' | 'type']: (options?: _TsDocTagOpt<TBuilder>) => never;
|
|
41
|
+
} & {
|
|
42
|
+
[K in 'class' | 'constructor' | 'const' | 'function' | 'func' | 'method' | 'constant' | 'member' | 'constructs' | 'interface' | 'var' | 'yield' | 'yields' | 'module' | 'namespace' | 'typedef']: {
|
|
43
|
+
(name: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
44
|
+
(options?: _TsDocTagOpt<TBuilder>): never;
|
|
45
|
+
};
|
|
46
|
+
} & {
|
|
47
|
+
[K in 'return' | 'returns' | 'throws' | 'exception' | 'classdesc' | 'copyright' | 'deprecated' | 'desc' | 'description' | 'file' | 'fileoverview' | 'overview' | 'public' | 'readonly' | 'since' | 'summary' | 'todo' | 'tutorial' | 'version']: {
|
|
48
|
+
(description: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
49
|
+
(options?: _TsDocTagOpt<TBuilder>): never;
|
|
50
|
+
};
|
|
51
|
+
} & {
|
|
52
|
+
[K in 'default' | 'defaultvalue']: {
|
|
53
|
+
(value: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
54
|
+
(options?: _TsDocTagOpt<TBuilder>): never;
|
|
55
|
+
};
|
|
56
|
+
} & {
|
|
57
|
+
[K in 'event' | 'fires']: (className: BasicAppendValue<TBuilder>, eventName: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>) => never;
|
|
58
|
+
} & {
|
|
59
|
+
[K in 'external' | 'host']: (nameOfExternal: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>) => never;
|
|
60
|
+
} & {
|
|
61
|
+
[K in 'memberof' | 'memberof!']: (parentNamepath: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>) => never;
|
|
62
|
+
} & {
|
|
63
|
+
[K in 'param' | 'arg' | 'argument' | 'prop' | 'property' | 'template']: {
|
|
64
|
+
(name: BasicAppendValue<TBuilder>, description: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
65
|
+
(name: BasicAppendValue<TBuilder>, options?: _TsDocTagOpt<TBuilder>): never;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
type _TsDocTagArgs<TTagName extends StringSuggestions<keyof _TsDocTagArgsMap<TBuilder>>, TBuilder extends SourceBuilder> = TTagName extends keyof _TsDocTagArgsMap<TBuilder> ? _TsDocTagArgsMap<TBuilder>[TTagName] extends (...args: any[]) => any ? ParametersWithOverloads<_TsDocTagArgsMap<TBuilder>[TTagName]> : never : [options?: _TsDocTagOpt<TBuilder>];
|
|
69
|
+
declare function createDocTag<TTagName extends StringSuggestions<keyof _TsDocTagArgsMap<TBuilder>>, TBuilder extends SourceBuilder>(tag: TTagName, ...args: _TsDocTagArgs<TTagName, TBuilder>): TsDocTag<TBuilder>;
|
|
70
|
+
export declare const tsDocTag: typeof createDocTag & {
|
|
71
|
+
write: typeof writeTsNodes;
|
|
72
|
+
};
|
|
73
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDocTag } from './doc-tag';
|
|
3
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
4
|
+
import { TsParameter } from './parameter';
|
|
5
|
+
import { TsNode } from '../node';
|
|
6
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
7
|
+
type Injects = never;
|
|
8
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
9
|
+
description?: Nullable<BasicAppendValue<TBuilder>>;
|
|
10
|
+
tags?: Nullable<Nullable<TsDocTag<TBuilder>>[]>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare class TsDoc<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
13
|
+
description: BasicAppendValue<TBuilder> | null;
|
|
14
|
+
tags: TsDocTag<TBuilder>[];
|
|
15
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
16
|
+
protected onWrite(builder: TBuilder): void;
|
|
17
|
+
}
|
|
18
|
+
declare function getDoc<TBuilder extends SourceBuilder>(baseDoc: TsDoc<TBuilder> | null, options: {
|
|
19
|
+
parameters?: Nullable<Nullable<TsParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
20
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
21
|
+
}): TsDoc<TBuilder> | null;
|
|
22
|
+
declare function isDocEmpty(doc: Nullable<TsDoc<SourceBuilder>>): boolean;
|
|
23
|
+
export declare const tsDoc: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsDoc<TBuilder, never>) & {
|
|
24
|
+
write: typeof writeTsNodes;
|
|
25
|
+
get: typeof getDoc;
|
|
26
|
+
isEmpty: typeof isDocEmpty;
|
|
27
|
+
};
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SourceBuilder, AstNodeOptions, Nullable, AppendValue, SingleOrMultiple, Prettify, BasicAppendValue } from '@goast/core';
|
|
2
|
+
import { TsDoc } from './doc';
|
|
3
|
+
import { TsString } from './string';
|
|
4
|
+
import { TsNode } from '../node';
|
|
5
|
+
type Injects = 'doc' | 'name' | 'value';
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
8
|
+
name: string;
|
|
9
|
+
value?: Nullable<TsString<TBuilder> | BasicAppendValue<TBuilder>>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare class TsEnumValue<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
12
|
+
doc: TsDoc<TBuilder> | null;
|
|
13
|
+
name: string;
|
|
14
|
+
value: TsString<TBuilder> | BasicAppendValue<TBuilder> | null;
|
|
15
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
16
|
+
protected onWrite(builder: TBuilder): void;
|
|
17
|
+
}
|
|
18
|
+
export declare const tsEnumValue: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsEnumValue<TBuilder, never>) & {
|
|
19
|
+
write: <TBuilder_1 extends SourceBuilder<never>>(builder: TBuilder_1, nodes: SingleOrMultiple<Nullable<TsEnumValue<TBuilder_1, never> | AppendValue<TBuilder_1>>>) => void;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDoc } from './doc';
|
|
3
|
+
import { TsEnumValue } from './enum-value';
|
|
4
|
+
import { TsNode } from '../node';
|
|
5
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
6
|
+
type Injects = 'doc' | 'modifiers' | 'name' | 'body' | 'members';
|
|
7
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
8
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
9
|
+
export?: Nullable<boolean>;
|
|
10
|
+
const?: Nullable<boolean>;
|
|
11
|
+
name: string;
|
|
12
|
+
members?: Nullable<Nullable<TsEnumValue<TBuilder>>[]>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class TsEnum<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
15
|
+
doc: TsDoc<TBuilder> | null;
|
|
16
|
+
export: boolean;
|
|
17
|
+
const: boolean;
|
|
18
|
+
name: string;
|
|
19
|
+
members: TsEnumValue<TBuilder>[];
|
|
20
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
21
|
+
protected onWrite(builder: TBuilder): void;
|
|
22
|
+
}
|
|
23
|
+
export declare const tsEnum: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsEnum<TBuilder, never>) & {
|
|
24
|
+
write: typeof writeTsNodes;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AstNodeOptions, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsNode } from '../node';
|
|
3
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
4
|
+
type Injects = never;
|
|
5
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
6
|
+
name: string;
|
|
7
|
+
filePath: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare class TsExport<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
10
|
+
name: string;
|
|
11
|
+
filePath: string;
|
|
12
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
13
|
+
protected onWrite(builder: TBuilder): void;
|
|
14
|
+
}
|
|
15
|
+
export declare const createExport: <TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], filePath: Options<TBuilder>['filePath'], options?: Prettify<Omit<Options<TBuilder>, 'name' | 'filePath'>>) => TsExport<TBuilder, never>;
|
|
16
|
+
export declare const tsExport: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], filePath: Options<TBuilder>['filePath'], options?: Prettify<Omit<Options<TBuilder>, 'name' | 'filePath'>>) => TsExport<TBuilder, never>) & {
|
|
17
|
+
write: typeof writeTsNodes;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
3
|
+
import { TsParameter } from './parameter';
|
|
4
|
+
import { TsType } from './types';
|
|
5
|
+
import { TsNode } from '../node';
|
|
6
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
7
|
+
type Injects = 'generics' | 'params' | 'returnType';
|
|
8
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
9
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
10
|
+
parameters?: Nullable<Nullable<TsParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
11
|
+
returnType?: Nullable<TsType<TBuilder>>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare class TsFunctionType<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
14
|
+
generics: (TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
15
|
+
parameters: (TsParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
16
|
+
returnType: TsType<TBuilder> | null;
|
|
17
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
18
|
+
protected onWrite(builder: TBuilder): void;
|
|
19
|
+
}
|
|
20
|
+
export declare const tsFunctionType: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsFunctionType<TBuilder, never>) & {
|
|
21
|
+
write: typeof writeTsNodes;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AppendValue, AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDecorator } from './decorator';
|
|
3
|
+
import { TsDoc } from './doc';
|
|
4
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
5
|
+
import { TsParameter } from './parameter';
|
|
6
|
+
import { TsType } from './types';
|
|
7
|
+
import { TsNode } from '../node';
|
|
8
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
9
|
+
type Injects = 'doc' | 'decorators' | 'modifiers' | 'name' | 'generics' | 'params' | 'returnType' | 'body';
|
|
10
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
11
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
12
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
13
|
+
export?: boolean;
|
|
14
|
+
name: string;
|
|
15
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder>>[]>;
|
|
16
|
+
parameters?: Nullable<Nullable<TsParameter<TBuilder>>[]>;
|
|
17
|
+
returnType?: Nullable<TsType<TBuilder>>;
|
|
18
|
+
body?: Nullable<AppendValue<TBuilder>>;
|
|
19
|
+
}>;
|
|
20
|
+
export declare class TsFunction<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
21
|
+
doc: TsDoc<TBuilder> | null;
|
|
22
|
+
decorators: TsDecorator<TBuilder>[];
|
|
23
|
+
export: boolean;
|
|
24
|
+
name: string;
|
|
25
|
+
generics: TsGenericParameter<TBuilder>[];
|
|
26
|
+
parameters: TsParameter<TBuilder>[];
|
|
27
|
+
returnType: TsType<TBuilder> | null;
|
|
28
|
+
body: AppendValue<TBuilder> | null;
|
|
29
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
30
|
+
protected onWrite(builder: TBuilder): void;
|
|
31
|
+
}
|
|
32
|
+
export declare const tsFunction: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsFunction<TBuilder, never>) & {
|
|
33
|
+
write: typeof writeTsNodes;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsType } from './types';
|
|
3
|
+
import { TsNode } from '../node';
|
|
4
|
+
import { writeTsGenericParameters } from '../utils/write-ts-generic-parameters';
|
|
5
|
+
type Injects = 'modifiers' | 'name' | 'constraint' | 'default';
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
description?: Nullable<BasicAppendValue<TBuilder>>;
|
|
8
|
+
const?: Nullable<boolean>;
|
|
9
|
+
name: string;
|
|
10
|
+
constraint?: Nullable<TsType<TBuilder>>;
|
|
11
|
+
default?: Nullable<TsType<TBuilder>>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare class TsGenericParameter<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
14
|
+
description: BasicAppendValue<TBuilder> | null;
|
|
15
|
+
const: boolean;
|
|
16
|
+
name: string;
|
|
17
|
+
constraint: TsType<TBuilder> | null;
|
|
18
|
+
default: TsType<TBuilder> | null;
|
|
19
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
20
|
+
protected onWrite(builder: TBuilder): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const tsGenericParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsGenericParameter<TBuilder, never>) & {
|
|
23
|
+
write: typeof writeTsGenericParameters;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsType } from './types';
|
|
3
|
+
import { TsNode } from '../node';
|
|
4
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
5
|
+
type Injects = never;
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
keyName?: Nullable<string>;
|
|
8
|
+
keyType: TsType<TBuilder>;
|
|
9
|
+
valueType: TsType<TBuilder>;
|
|
10
|
+
readonly?: Nullable<boolean>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare class TsIndexer<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
13
|
+
keyName: string;
|
|
14
|
+
keyType: TsType<TBuilder>;
|
|
15
|
+
valueType: TsType<TBuilder>;
|
|
16
|
+
readonly: boolean;
|
|
17
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
18
|
+
protected onWrite(builder: TBuilder): void;
|
|
19
|
+
}
|
|
20
|
+
export declare const tsIndexer: (<TBuilder extends SourceBuilder<never>>(keyType: Options<TBuilder>['keyType'], valueType: Options<TBuilder>['valueType'], options?: Prettify<Omit<Options<TBuilder>, 'keyType' | 'valueType'>>) => TsIndexer<TBuilder, never>) & {
|
|
21
|
+
write: typeof writeTsNodes;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDecorator } from './decorator';
|
|
3
|
+
import { TsDoc } from './doc';
|
|
4
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
5
|
+
import { TsIndexer } from './indexer';
|
|
6
|
+
import { TsMethod } from './method';
|
|
7
|
+
import { TsProperty } from './property';
|
|
8
|
+
import { TsReference } from './reference';
|
|
9
|
+
import { TsNode } from '../node';
|
|
10
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
11
|
+
type Injects = 'doc' | 'decorators' | 'modifiers' | 'name' | 'generics' | 'extends' | 'body' | 'members';
|
|
12
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
13
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
14
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
15
|
+
export?: Nullable<boolean>;
|
|
16
|
+
name: string;
|
|
17
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
18
|
+
extends?: Nullable<Nullable<TsReference<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
19
|
+
members?: Nullable<Nullable<Member<TBuilder>>[]>;
|
|
20
|
+
}>;
|
|
21
|
+
type Member<TBuilder extends SourceBuilder> = TsIndexer<TBuilder> | TsProperty<TBuilder> | TsMethod<TBuilder> | BasicAppendValue<TBuilder>;
|
|
22
|
+
export declare class TsInterface<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
23
|
+
doc: TsDoc<TBuilder> | null;
|
|
24
|
+
decorators: TsDecorator<TBuilder>[];
|
|
25
|
+
export: boolean;
|
|
26
|
+
name: string;
|
|
27
|
+
generics: (TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
28
|
+
extends: (TsReference<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
29
|
+
members: Member<TBuilder>[];
|
|
30
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
31
|
+
protected onWrite(builder: TBuilder): void;
|
|
32
|
+
}
|
|
33
|
+
export declare const tsInterface: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsInterface<TBuilder, never>) & {
|
|
34
|
+
write: typeof writeTsNodes;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsType } from './types';
|
|
3
|
+
import { TsNode } from '../node';
|
|
4
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
5
|
+
type Injects = never;
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
types: Nullable<TsType<TBuilder>>[];
|
|
8
|
+
}>;
|
|
9
|
+
export declare class TsIntersectionType<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
10
|
+
types: TsType<TBuilder>[];
|
|
11
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
12
|
+
protected onWrite(builder: TBuilder): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const tsIntersectionType: (<TBuilder extends SourceBuilder<never>>(types: Options<TBuilder>['types'], options?: Prettify<Omit<Options<TBuilder>, 'types'>>) => TsIntersectionType<TBuilder, never>) & {
|
|
15
|
+
write: typeof writeTsNodes;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AstNodeOptions, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsType } from './types';
|
|
3
|
+
import { TsNode } from '../node';
|
|
4
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
5
|
+
type Injects = 'type' | 'index';
|
|
6
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
7
|
+
type: TsType<TBuilder>;
|
|
8
|
+
index: TsType<TBuilder>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare class TsLookupType<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
11
|
+
type: TsType<TBuilder>;
|
|
12
|
+
index: TsType<TBuilder>;
|
|
13
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
14
|
+
protected onWrite(builder: TBuilder): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const tsLookupType: (<TBuilder extends SourceBuilder<never>>(type: Options<TBuilder>['type'], index: Options<TBuilder>['index'], options?: Omit<Options<TBuilder>, 'type' | 'index'>) => TsLookupType<TBuilder, never>) & {
|
|
17
|
+
write: typeof writeTsNodes;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AppendValue, AstNodeOptions, BasicAppendValue, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDecorator } from './decorator';
|
|
3
|
+
import { TsDoc } from './doc';
|
|
4
|
+
import { TsGenericParameter } from './generic-parameter';
|
|
5
|
+
import { TsParameter } from './parameter';
|
|
6
|
+
import { TsType } from './types';
|
|
7
|
+
import { TsAccessModifier } from '../common';
|
|
8
|
+
import { TsNode } from '../node';
|
|
9
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
10
|
+
type Injects = 'doc' | 'decorators' | 'modifiers' | 'name' | 'generics' | 'params' | 'returnType' | 'body';
|
|
11
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
12
|
+
doc?: Nullable<TsDoc<TBuilder>>;
|
|
13
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
14
|
+
accessModifier?: Nullable<TsAccessModifier>;
|
|
15
|
+
static?: Nullable<boolean>;
|
|
16
|
+
abstract?: Nullable<boolean>;
|
|
17
|
+
override?: Nullable<boolean>;
|
|
18
|
+
name: string;
|
|
19
|
+
optional?: Nullable<boolean>;
|
|
20
|
+
generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
21
|
+
parameters?: Nullable<Nullable<TsParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
|
|
22
|
+
returnType?: Nullable<TsType<TBuilder>>;
|
|
23
|
+
body?: Nullable<AppendValue<TBuilder>>;
|
|
24
|
+
}>;
|
|
25
|
+
export declare class TsMethod<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
26
|
+
doc: TsDoc<TBuilder> | null;
|
|
27
|
+
decorators: TsDecorator<TBuilder>[];
|
|
28
|
+
accessModifier: TsAccessModifier | null;
|
|
29
|
+
static: boolean;
|
|
30
|
+
abstract: boolean;
|
|
31
|
+
override: boolean;
|
|
32
|
+
name: string;
|
|
33
|
+
optional: boolean;
|
|
34
|
+
generics: (TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
35
|
+
parameters: (TsParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
|
|
36
|
+
returnType: TsType<TBuilder> | null;
|
|
37
|
+
body: AppendValue<TBuilder> | null;
|
|
38
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
39
|
+
protected onWrite(builder: TBuilder): void;
|
|
40
|
+
}
|
|
41
|
+
export declare const createMethod: <TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsMethod<TBuilder, never>;
|
|
42
|
+
export declare const tsMethod: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsMethod<TBuilder, never>) & {
|
|
43
|
+
write: typeof writeTsNodes;
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsIndexer } from './indexer';
|
|
3
|
+
import { TsMethod } from './method';
|
|
4
|
+
import { TsProperty } from './property';
|
|
5
|
+
import { TsNode } from '../node';
|
|
6
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
7
|
+
type Injects = never;
|
|
8
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
9
|
+
members?: Nullable<Nullable<Member<TBuilder>>[]>;
|
|
10
|
+
}>;
|
|
11
|
+
type Member<TBuilder extends SourceBuilder> = TsProperty<TBuilder> | TsMethod<TBuilder> | TsIndexer<TBuilder> | BasicAppendValue<TBuilder>;
|
|
12
|
+
export declare class TsObjectType<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
13
|
+
members: Member<TBuilder>[];
|
|
14
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
15
|
+
protected onWrite(builder: TBuilder): void;
|
|
16
|
+
}
|
|
17
|
+
export declare const tsObjectType: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsObjectType<TBuilder, never>) & {
|
|
18
|
+
write: typeof writeTsNodes;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsNode } from '../node';
|
|
3
|
+
import { writeTsNodes } from '../utils/write-ts-nodes';
|
|
4
|
+
import type { TsMethod } from './method';
|
|
5
|
+
import type { TsProperty } from './property';
|
|
6
|
+
type Injects = never;
|
|
7
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
8
|
+
members?: Nullable<Nullable<Member<TBuilder>>[]>;
|
|
9
|
+
}>;
|
|
10
|
+
type Member<TBuilder extends SourceBuilder> = TsProperty<TBuilder> | TsMethod<TBuilder> | BasicAppendValue<TBuilder>;
|
|
11
|
+
export declare class TsObject<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
12
|
+
members: Member<TBuilder>[];
|
|
13
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
14
|
+
protected onWrite(builder: TBuilder): void;
|
|
15
|
+
}
|
|
16
|
+
export declare const tsObject: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsObject<TBuilder, never>) & {
|
|
17
|
+
write: typeof writeTsNodes;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AstNodeOptions, BasicAppendValue, Nullable, Prettify, SourceBuilder } from '@goast/core';
|
|
2
|
+
import { TsDecorator } from './decorator';
|
|
3
|
+
import { TsType, TsValue } from './types';
|
|
4
|
+
import { TsNode } from '../node';
|
|
5
|
+
import { writeTsParameters } from '../utils/write-ts-parameters';
|
|
6
|
+
type Injects = 'decorators' | 'name' | 'type' | 'default';
|
|
7
|
+
type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<typeof TsNode<TBuilder, TInjects | Injects>, {
|
|
8
|
+
name: string;
|
|
9
|
+
description?: Nullable<BasicAppendValue<TBuilder>>;
|
|
10
|
+
decorators?: Nullable<Nullable<TsDecorator<TBuilder>>[]>;
|
|
11
|
+
type?: Nullable<TsType<TBuilder>>;
|
|
12
|
+
optional?: Nullable<boolean>;
|
|
13
|
+
default?: Nullable<TsValue<TBuilder>>;
|
|
14
|
+
}>;
|
|
15
|
+
export declare class TsParameter<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<TBuilder, TInjects | Injects> {
|
|
16
|
+
name: string;
|
|
17
|
+
description: BasicAppendValue<TBuilder> | null;
|
|
18
|
+
decorators: TsDecorator<TBuilder>[];
|
|
19
|
+
type: TsType<TBuilder> | null;
|
|
20
|
+
optional: boolean;
|
|
21
|
+
default: TsValue<TBuilder> | null;
|
|
22
|
+
constructor(options: Options<TBuilder, TInjects>);
|
|
23
|
+
protected onWrite(builder: TBuilder): void;
|
|
24
|
+
}
|
|
25
|
+
export declare const tsParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsParameter<TBuilder, never>) & {
|
|
26
|
+
write: typeof writeTsParameters;
|
|
27
|
+
};
|
|
28
|
+
export {};
|