@goast/typescript 0.7.6 → 0.8.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/esm/src/generators/models/model-generator.d.ts +22 -0
  2. package/esm/src/generators/models/model-generator.d.ts.map +1 -1
  3. package/esm/src/generators/models/model-generator.js +37 -5
  4. package/esm/src/generators/services/angular-services/angular-services-generator.js +2 -2
  5. package/esm/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
  6. package/esm/src/generators/services/k6-clients/k6-client-generator.js +12 -2
  7. package/esm/src/import-collection.d.ts.map +1 -1
  8. package/esm/src/import-collection.js +2 -2
  9. package/package.json +2 -2
  10. package/script/src/generators/models/model-generator.d.ts +22 -0
  11. package/script/src/generators/models/model-generator.d.ts.map +1 -1
  12. package/script/src/generators/models/model-generator.js +37 -5
  13. package/script/src/generators/services/angular-services/angular-services-generator.js +2 -2
  14. package/script/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
  15. package/script/src/generators/services/k6-clients/k6-client-generator.js +12 -2
  16. package/script/src/import-collection.d.ts.map +1 -1
  17. package/script/src/import-collection.js +1 -1
  18. package/src/mod.ts +0 -7
  19. package/src/src/assets.ts +0 -9
  20. package/src/src/ast/_index.ts +0 -54
  21. package/src/src/ast/common.ts +0 -1
  22. package/src/src/ast/index.ts +0 -1
  23. package/src/src/ast/node.ts +0 -10
  24. package/src/src/ast/nodes/argument.ts +0 -40
  25. package/src/src/ast/nodes/array-type.ts +0 -49
  26. package/src/src/ast/nodes/arrow-function.ts +0 -91
  27. package/src/src/ast/nodes/call.ts +0 -55
  28. package/src/src/ast/nodes/class.ts +0 -133
  29. package/src/src/ast/nodes/constructor-parameter.ts +0 -70
  30. package/src/src/ast/nodes/constructor.ts +0 -77
  31. package/src/src/ast/nodes/decorator.ts +0 -76
  32. package/src/src/ast/nodes/doc-tag.ts +0 -291
  33. package/src/src/ast/nodes/doc.ts +0 -102
  34. package/src/src/ast/nodes/enum-value.ts +0 -72
  35. package/src/src/ast/nodes/enum.ts +0 -77
  36. package/src/src/ast/nodes/export.ts +0 -54
  37. package/src/src/ast/nodes/function-type.ts +0 -60
  38. package/src/src/ast/nodes/function.ts +0 -107
  39. package/src/src/ast/nodes/generic-parameter.ts +0 -71
  40. package/src/src/ast/nodes/indexer.ts +0 -60
  41. package/src/src/ast/nodes/interface.ts +0 -117
  42. package/src/src/ast/nodes/intersection-type.ts +0 -67
  43. package/src/src/ast/nodes/lookup-type.ts +0 -53
  44. package/src/src/ast/nodes/method.ts +0 -138
  45. package/src/src/ast/nodes/object-type.ts +0 -52
  46. package/src/src/ast/nodes/object.ts +0 -48
  47. package/src/src/ast/nodes/parameter.ts +0 -85
  48. package/src/src/ast/nodes/property-accessor.ts +0 -173
  49. package/src/src/ast/nodes/property.ts +0 -192
  50. package/src/src/ast/nodes/reference.ts +0 -194
  51. package/src/src/ast/nodes/string.ts +0 -49
  52. package/src/src/ast/nodes/tuple.ts +0 -53
  53. package/src/src/ast/nodes/type-alias.ts +0 -75
  54. package/src/src/ast/nodes/typeof.ts +0 -42
  55. package/src/src/ast/nodes/types.ts +0 -40
  56. package/src/src/ast/nodes/union-type.ts +0 -62
  57. package/src/src/ast/nodes/variable.ts +0 -73
  58. package/src/src/ast/references/angular.ts +0 -24
  59. package/src/src/ast/references/easy-network-stub.ts +0 -21
  60. package/src/src/ast/references/index.ts +0 -5
  61. package/src/src/ast/references/k6.ts +0 -8
  62. package/src/src/ast/references/rxjs.ts +0 -7
  63. package/src/src/ast/references/typescript.ts +0 -35
  64. package/src/src/ast/utils/get-type-script-builder-options.ts +0 -19
  65. package/src/src/ast/utils/to-ts-node.ts +0 -27
  66. package/src/src/ast/utils/write-ts-generic-parameters.ts +0 -25
  67. package/src/src/ast/utils/write-ts-members.ts +0 -28
  68. package/src/src/ast/utils/write-ts-nodes.ts +0 -35
  69. package/src/src/ast/utils/write-ts-parameters.ts +0 -25
  70. package/src/src/common-results.ts +0 -26
  71. package/src/src/config.ts +0 -96
  72. package/src/src/file-builder.ts +0 -137
  73. package/src/src/generators/file-generator.ts +0 -15
  74. package/src/src/generators/index.ts +0 -6
  75. package/src/src/generators/models/index.ts +0 -3
  76. package/src/src/generators/models/model-generator.ts +0 -493
  77. package/src/src/generators/models/models-generator.ts +0 -108
  78. package/src/src/generators/models/models.ts +0 -121
  79. package/src/src/generators/services/angular-services/angular-service-generator.ts +0 -431
  80. package/src/src/generators/services/angular-services/angular-services-generator.ts +0 -295
  81. package/src/src/generators/services/angular-services/index.ts +0 -3
  82. package/src/src/generators/services/angular-services/models.ts +0 -277
  83. package/src/src/generators/services/angular-services/refs.ts +0 -54
  84. package/src/src/generators/services/easy-network-stub/easy-network-stub-generator.ts +0 -250
  85. package/src/src/generators/services/easy-network-stub/easy-network-stubs-generator.ts +0 -211
  86. package/src/src/generators/services/easy-network-stub/index.ts +0 -3
  87. package/src/src/generators/services/easy-network-stub/models.ts +0 -124
  88. package/src/src/generators/services/easy-network-stub/refs.ts +0 -47
  89. package/src/src/generators/services/fetch-clients/fetch-client-generator.ts +0 -305
  90. package/src/src/generators/services/fetch-clients/fetch-clients-generator.ts +0 -163
  91. package/src/src/generators/services/fetch-clients/index.ts +0 -3
  92. package/src/src/generators/services/fetch-clients/models.ts +0 -130
  93. package/src/src/generators/services/fetch-clients/refs.ts +0 -21
  94. package/src/src/generators/services/k6-clients/index.ts +0 -3
  95. package/src/src/generators/services/k6-clients/k6-client-generator.ts +0 -505
  96. package/src/src/generators/services/k6-clients/k6-clients-generator.ts +0 -171
  97. package/src/src/generators/services/k6-clients/models.ts +0 -247
  98. package/src/src/generators/services/k6-clients/refs.ts +0 -16
  99. package/src/src/import-collection.ts +0 -236
  100. package/src/src/utils.ts +0 -79
@@ -1,49 +0,0 @@
1
- import type { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
2
-
3
- import { TsNode } from '../node.js';
4
- import { getTypeScriptBuilderOptions } from '../utils/get-type-script-builder-options.js';
5
- import { writeTsNodes } from '../utils/write-ts-nodes.js';
6
-
7
- type Injects = never;
8
-
9
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
10
- typeof TsNode<TBuilder, TInjects | Injects>,
11
- {
12
- value: string;
13
- template?: Nullable<boolean>;
14
- }
15
- >;
16
-
17
- export class TsString<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
18
- TBuilder,
19
- TInjects | Injects
20
- > {
21
- public value: string;
22
- public template: boolean;
23
-
24
- constructor(options: Options<TBuilder, TInjects>) {
25
- super(options);
26
- this.value = options.value;
27
- this.template = options.template ?? false;
28
- }
29
-
30
- protected override onWrite(builder: TBuilder): void {
31
- const builderOptions = getTypeScriptBuilderOptions(builder);
32
- let value = JSON.stringify(this.value);
33
- if (this.template) {
34
- value = `\`${value.slice(1, -1).replace(/`/g, '\\`')}\``;
35
- } else if (builderOptions.useSingleQuotes) {
36
- value = `'${value.slice(1, -1).replace(/'/g, "\\'")}'`;
37
- }
38
- builder.append(value);
39
- }
40
- }
41
-
42
- const createString = <TBuilder extends SourceBuilder>(
43
- value: Options<TBuilder>['value'],
44
- options?: Prettify<Omit<Options<TBuilder>, 'value'>>,
45
- ): TsString<TBuilder> => new TsString<TBuilder>({ ...options, value });
46
-
47
- export const tsString: typeof createString & { write: typeof writeTsNodes } = Object.assign(createString, {
48
- write: writeTsNodes,
49
- });
@@ -1,53 +0,0 @@
1
- import { type AstNodeOptions, notNullish, type Nullable, type Prettify, type SourceBuilder } from '@goast/core';
2
-
3
- import { TsNode } from '../node.js';
4
- import { writeTsNodes } from '../utils/write-ts-nodes.js';
5
- import type { TsType, TsValue } from './types.js';
6
-
7
- type Injects = never;
8
-
9
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
10
- typeof TsNode<TBuilder, TInjects | Injects>,
11
- {
12
- elements: Nullable<TsType<TBuilder> | TsValue<TBuilder>>[];
13
- asConst?: Nullable<boolean>;
14
- }
15
- >;
16
-
17
- export class TsTuple<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
18
- TBuilder,
19
- TInjects | Injects
20
- > {
21
- public elements: (TsType<TBuilder> | TsValue<TBuilder>)[];
22
- public asConst: boolean;
23
-
24
- constructor(options: Options<TBuilder, TInjects>) {
25
- super(options);
26
- this.elements = options.elements.filter(notNullish);
27
- this.asConst = options.asConst ?? false;
28
- }
29
-
30
- protected override onWrite(builder: TBuilder): void {
31
- if (this.elements.length === 0) {
32
- builder.append('[]');
33
- } else {
34
- const multiline = this.elements.length > 3;
35
- builder.parenthesize('[]', (b) => writeTsNodes(b, this.elements, { separator: multiline ? ',\n' : ', ' }), {
36
- multiline,
37
- });
38
- }
39
-
40
- if (this.asConst) {
41
- builder.append(' as const');
42
- }
43
- }
44
- }
45
-
46
- const createTuple = <TBuilder extends SourceBuilder>(
47
- elements: Options<TBuilder>['elements'],
48
- options?: Prettify<Omit<Options<TBuilder>, 'elements'>>,
49
- ): TsTuple<TBuilder> => new TsTuple<TBuilder>({ ...options, elements });
50
-
51
- export const tsTuple: typeof createTuple & { write: typeof writeTsNodes } = Object.assign(createTuple, {
52
- write: writeTsNodes,
53
- });
@@ -1,75 +0,0 @@
1
- import {
2
- type AstNodeOptions,
3
- type BasicAppendValue,
4
- notNullish,
5
- type Nullable,
6
- type Prettify,
7
- type SourceBuilder,
8
- } from '@goast/core';
9
-
10
- import { TsNode } from '../node.js';
11
- import { writeTsNode, writeTsNodes } from '../utils/write-ts-nodes.js';
12
- import type { TsDoc } from './doc.js';
13
- import { type TsGenericParameter, tsGenericParameter } from './generic-parameter.js';
14
- import type { TsType } from './types.js';
15
-
16
- type Injects = never;
17
-
18
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
19
- typeof TsNode<TBuilder, TInjects | Injects>,
20
- {
21
- name: string;
22
- doc?: Nullable<TsDoc<TBuilder>>;
23
- generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
24
- type: TsType<TBuilder>;
25
- export?: Nullable<boolean>;
26
- }
27
- >;
28
-
29
- export class TsTypeAlias<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
30
- TBuilder,
31
- TInjects | Injects
32
- > {
33
- public name: string;
34
- public doc: TsDoc<TBuilder> | null;
35
- public generics: (TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>)[];
36
- public type: TsType<TBuilder>;
37
- public export: boolean;
38
-
39
- constructor(options: Options<TBuilder, TInjects>) {
40
- super(options);
41
- this.name = options.name;
42
- this.doc = options.doc ?? null;
43
- this.generics = options.generics?.filter(notNullish) ?? [];
44
- this.type = options.type;
45
- this.export = options.export ?? false;
46
- }
47
-
48
- protected override onWrite(builder: TBuilder): void {
49
- if (this.doc) writeTsNode(builder, this.doc);
50
- if (this.export) builder.append('export ');
51
-
52
- builder.append('type ');
53
- builder.append(this.name);
54
- tsGenericParameter.write(builder, this.generics);
55
-
56
- builder.append(' = ');
57
- builder.indent((b) => {
58
- writeTsNode(b, this.type);
59
- });
60
-
61
- builder.append(';');
62
-
63
- builder.appendLine();
64
- }
65
- }
66
-
67
- const createTypeAlias = <TBuilder extends SourceBuilder>(
68
- name: Options<TBuilder>['name'],
69
- type: Options<TBuilder>['type'],
70
- options?: Prettify<Omit<Options<TBuilder>, 'name' | 'type'>>,
71
- ): TsTypeAlias<TBuilder> => new TsTypeAlias<TBuilder>({ ...options, name, type });
72
-
73
- export const tsTypeAlias: typeof createTypeAlias & { write: typeof writeTsNodes } = Object.assign(createTypeAlias, {
74
- write: writeTsNodes,
75
- });
@@ -1,42 +0,0 @@
1
- import type { AstNodeOptions, SourceBuilder } from '@goast/core';
2
-
3
- import { TsNode } from '../node.js';
4
- import { writeTsNode, writeTsNodes } from '../utils/write-ts-nodes.js';
5
- import type { TsValue } from './types.js';
6
-
7
- type Injects = 'value';
8
-
9
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
10
- typeof TsNode<TBuilder, TInjects | Injects>,
11
- {
12
- value: TsValue<TBuilder>;
13
- }
14
- >;
15
-
16
- export class TsTypeof<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
17
- TBuilder,
18
- TInjects | Injects
19
- > {
20
- public value: TsValue<TBuilder>;
21
-
22
- constructor(options: Options<TBuilder, TInjects>) {
23
- super(options);
24
- this.value = options.value;
25
- }
26
-
27
- protected override onWrite(builder: TBuilder): void {
28
- builder.append('typeof ');
29
- builder.append(this.inject.beforeValue);
30
- writeTsNode(builder, this.value);
31
- builder.append(this.inject.afterValue);
32
- }
33
- }
34
-
35
- export const createTypeof = <TBuilder extends SourceBuilder>(
36
- value: Options<TBuilder>['value'],
37
- options?: Omit<Options<TBuilder>, 'value'>,
38
- ): TsTypeof<TBuilder> => new TsTypeof<TBuilder>({ ...options, value });
39
-
40
- export const tsTypeof: typeof createTypeof & { write: typeof writeTsNodes } = Object.assign(createTypeof, {
41
- write: writeTsNodes,
42
- });
@@ -1,40 +0,0 @@
1
- import type { BasicAppendValue, SourceBuilder } from '@goast/core';
2
- import type { TsArrayType } from './array-type.js';
3
- import type { TsArrowFunction } from './arrow-function.js';
4
- import type { TsCall } from './call.js';
5
- import type { TsClass } from './class.js';
6
- import type { TsFunctionType } from './function-type.js';
7
- import type { TsFunction } from './function.js';
8
- import type { TsIntersectionType } from './intersection-type.js';
9
- import type { TsLookupType } from './lookup-type.js';
10
- import type { TsObjectType } from './object-type.js';
11
- import type { TsObject } from './object.js';
12
- import type { TsReference } from './reference.js';
13
- import type { TsString } from './string.js';
14
- import type { TsTuple } from './tuple.js';
15
- import type { TsTypeof } from './typeof.js';
16
- import type { TsUnionType } from './union-type.js';
17
-
18
- export type TsType<TBuilder extends SourceBuilder> =
19
- | BasicAppendValue<TBuilder>
20
- | TsIntersectionType<TBuilder>
21
- | TsUnionType<TBuilder>
22
- | TsArrayType<TBuilder>
23
- | TsTuple<TBuilder>
24
- | TsFunctionType<TBuilder>
25
- | TsObjectType<TBuilder>
26
- | TsString<TBuilder>
27
- | TsLookupType<TBuilder>
28
- | TsTypeof<TBuilder>
29
- | TsReference<TBuilder>;
30
-
31
- export type TsValue<TBuilder extends SourceBuilder> =
32
- | BasicAppendValue<TBuilder>
33
- | TsObject<TBuilder>
34
- | TsTuple<TBuilder>
35
- | TsString<TBuilder>
36
- | TsArrowFunction<TBuilder>
37
- | TsFunction<TBuilder>
38
- | TsClass<TBuilder>
39
- | TsCall<TBuilder>
40
- | TsReference<TBuilder>;
@@ -1,62 +0,0 @@
1
- import { type AstNodeOptions, notNullish, type Nullable, type Prettify, type SourceBuilder } from '@goast/core';
2
-
3
- import { TsNode } from '../node.js';
4
- import { writeTsNode, writeTsNodes } from '../utils/write-ts-nodes.js';
5
- import type { TsType } from './types.js';
6
-
7
- type Injects = never;
8
-
9
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
10
- typeof TsNode<TBuilder, TInjects | Injects>,
11
- {
12
- types: Nullable<TsType<TBuilder>>[];
13
- }
14
- >;
15
-
16
- export class TsUnionType<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
17
- TBuilder,
18
- TInjects | Injects
19
- > {
20
- public types: TsType<TBuilder>[];
21
-
22
- constructor(options: Options<TBuilder, TInjects>) {
23
- super(options);
24
- this.types = options.types.filter(notNullish);
25
- }
26
-
27
- protected override onWrite(builder: TBuilder): void {
28
- const types = this.types.length === 0 ? ['never'] : resolveNestedUnionTypes(this);
29
- if (types.length === 1) {
30
- writeTsNode(builder, types[0]);
31
- } else {
32
- const multiline = types.length > 3;
33
- if (multiline) {
34
- builder.appendLine().append('| ');
35
- }
36
- builder.forEach(types, (b, t) => b.parenthesize('()', (b) => writeTsNode(b, t)), {
37
- separator: multiline ? '\n| ' : ' | ',
38
- });
39
- }
40
- }
41
- }
42
-
43
- const createUnionType = <TBuilder extends SourceBuilder>(
44
- types: Options<TBuilder>['types'],
45
- options?: Prettify<Omit<Options<TBuilder>, 'types'>>,
46
- ): TsUnionType<TBuilder> => new TsUnionType<TBuilder>({ ...options, types });
47
-
48
- export const tsUnionType: typeof createUnionType & { write: typeof writeTsNodes } = Object.assign(createUnionType, {
49
- write: writeTsNodes,
50
- });
51
-
52
- function resolveNestedUnionTypes<TBuilder extends SourceBuilder>(node: TsUnionType<TBuilder>): TsType<TBuilder>[] {
53
- const types: TsType<TBuilder>[] = [];
54
- for (const type of node.types) {
55
- if (type instanceof TsUnionType) {
56
- types.push(...resolveNestedUnionTypes(type));
57
- } else {
58
- types.push(type);
59
- }
60
- }
61
- return types;
62
- }
@@ -1,73 +0,0 @@
1
- import type { AstNodeOptions, Nullable, Prettify, SourceBuilder } from '@goast/core';
2
-
3
- import { TsNode } from '../node.js';
4
- import { writeTsNode, writeTsNodes } from '../utils/write-ts-nodes.js';
5
- import type { TsDoc } from './doc.js';
6
- import type { TsType, TsValue } from './types.js';
7
-
8
- type Injects = never;
9
-
10
- type Options<TBuilder extends SourceBuilder, TInjects extends string = never> = AstNodeOptions<
11
- typeof TsNode<TBuilder, TInjects | Injects>,
12
- {
13
- name: string;
14
- doc?: Nullable<TsDoc<TBuilder>>;
15
- type?: Nullable<TsType<TBuilder>>;
16
- value?: Nullable<TsValue<TBuilder>>;
17
- export?: Nullable<boolean>;
18
- readonly?: Nullable<boolean>;
19
- }
20
- >;
21
-
22
- export class TsVariable<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsNode<
23
- TBuilder,
24
- TInjects | Injects
25
- > {
26
- public name: string;
27
- public doc: TsDoc<TBuilder> | null;
28
- public type: TsType<TBuilder> | null;
29
- public value: TsValue<TBuilder> | null;
30
- public export: boolean;
31
- public readonly: boolean;
32
-
33
- constructor(options: Options<TBuilder, TInjects>) {
34
- super(options);
35
- this.name = options.name;
36
- this.doc = options.doc ?? null;
37
- this.type = options.type ?? null;
38
- this.value = options.value ?? null;
39
- this.export = options.export ?? false;
40
- this.readonly = options.readonly ?? false;
41
- }
42
-
43
- protected override onWrite(builder: TBuilder): void {
44
- if (this.doc) writeTsNode(builder, this.doc);
45
- if (this.export) builder.append('export ');
46
-
47
- builder.append(this.readonly ? 'const ' : 'let ');
48
- builder.append(this.name);
49
-
50
- if (this.type) {
51
- builder.append(': ');
52
- writeTsNode(builder, this.type);
53
- }
54
-
55
- if (this.value) {
56
- builder.append(' = ');
57
- writeTsNode(builder, this.value);
58
- }
59
-
60
- builder.append(';');
61
-
62
- builder.appendLine();
63
- }
64
- }
65
-
66
- const createVariable = <TBuilder extends SourceBuilder>(
67
- name: Options<TBuilder>['name'],
68
- options?: Prettify<Omit<Options<TBuilder>, 'name'>>,
69
- ): TsVariable<TBuilder> => new TsVariable<TBuilder>({ ...options, name });
70
-
71
- export const tsVariable: typeof createVariable & { write: typeof writeTsNodes } = Object.assign(createVariable, {
72
- write: writeTsNodes,
73
- });
@@ -1,24 +0,0 @@
1
- import {
2
- type TsGenericModuleReferenceFactory,
3
- type TsModuleReferenceFactory,
4
- tsReference,
5
- } from '../nodes/reference.js';
6
-
7
- // @angular/core
8
- export const inject: TsModuleReferenceFactory = tsReference.factory('inject', '@angular/core');
9
- export const injectable: TsModuleReferenceFactory = tsReference.factory('Injectable', '@angular/core');
10
- export const provider: TsModuleReferenceFactory = tsReference.factory('Provider', '@angular/core', {
11
- importType: 'type-import',
12
- });
13
-
14
- // @angular/common/http
15
- export const httpClient: TsModuleReferenceFactory = tsReference.factory('HttpClient', '@angular/common/http');
16
- export const httpContext: TsModuleReferenceFactory = tsReference.factory('HttpContext', '@angular/common/http');
17
- export const httpResponse: TsGenericModuleReferenceFactory<1> = tsReference.genericFactory<1>(
18
- 'HttpResponse',
19
- '@angular/common/http',
20
- );
21
- export const httpErrorResponse: TsModuleReferenceFactory = tsReference.factory(
22
- 'HttpErrorResponse',
23
- '@angular/common/http',
24
- );
@@ -1,21 +0,0 @@
1
- import {
2
- type TsGenericModuleReferenceFactory,
3
- type TsModuleReferenceFactory,
4
- tsReference,
5
- } from '../nodes/reference.js';
6
-
7
- export const easyNetworkStub: TsModuleReferenceFactory = tsReference.factory('EasyNetworkStub', 'easy-network-stub');
8
- export const httpMethod: TsModuleReferenceFactory = tsReference.factory('HttpMethod', 'easy-network-stub', {
9
- importType: 'type-import',
10
- });
11
- export const routeResponseCallback: TsGenericModuleReferenceFactory<2> = tsReference.genericFactory<2>(
12
- 'RouteResponseCallback',
13
- 'easy-network-stub',
14
- {
15
- importType: 'type-import',
16
- },
17
- );
18
- export const errorResponse: TsGenericModuleReferenceFactory<1> = tsReference.genericFactory<1>(
19
- 'ErrorResponse',
20
- 'easy-network-stub',
21
- );
@@ -1,5 +0,0 @@
1
- export * as angular from './angular.js';
2
- export * as easyNetworkStub from './easy-network-stub.js';
3
- export * as k6 from './k6.js';
4
- export * as rxjs from './rxjs.js';
5
- export * from './typescript.js';
@@ -1,8 +0,0 @@
1
- import { type TsModuleReferenceFactory, tsReference } from '../nodes/reference.js';
2
-
3
- // k6
4
- export const jsonValue: TsModuleReferenceFactory = tsReference.factory('JSONValue', 'k6');
5
-
6
- // h6/http
7
- export const response: TsModuleReferenceFactory = tsReference.factory('Response', 'k6/http');
8
- export const params: TsModuleReferenceFactory = tsReference.factory('Params', 'k6/http');
@@ -1,7 +0,0 @@
1
- import { type TsModuleReferenceFactory, tsReference } from '../nodes/reference.js';
2
-
3
- export const observable: TsModuleReferenceFactory = tsReference.factory('Observable', 'rxjs');
4
- export const firstValueFrom: TsModuleReferenceFactory = tsReference.factory('firstValueFrom', 'rxjs');
5
- export const filter: TsModuleReferenceFactory = tsReference.factory('filter', 'rxjs');
6
- export const map: TsModuleReferenceFactory = tsReference.factory('map', 'rxjs');
7
- export const take: TsModuleReferenceFactory = tsReference.factory('take', 'rxjs');
@@ -1,35 +0,0 @@
1
- import { type TsGenericReferenceFactory, tsReference, type TsReferenceFactory } from '../nodes/reference.js';
2
-
3
- export const any: TsReferenceFactory = tsReference.factory('any');
4
- export const unknown: TsReferenceFactory = tsReference.factory('unknown');
5
- export const void_: TsReferenceFactory = tsReference.factory('void');
6
- export const never: TsReferenceFactory = tsReference.factory('never');
7
- export const number: TsReferenceFactory = tsReference.factory('number');
8
- export const string: TsReferenceFactory = tsReference.factory('string');
9
- export const boolean: TsReferenceFactory = tsReference.factory('boolean');
10
- export const bigint: TsReferenceFactory = tsReference.factory('bigint');
11
- export const symbol: TsReferenceFactory = tsReference.factory('symbol');
12
- export const object: TsReferenceFactory = tsReference.factory('object');
13
- export const undefined_: TsReferenceFactory = tsReference.factory('undefined');
14
- export const null_: TsReferenceFactory = tsReference.factory('null');
15
-
16
- export const array: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Array');
17
- export const record: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Record');
18
- export const map: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Map');
19
- export const set: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Set');
20
- export const promise: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Promise');
21
-
22
- export const readonlyArray: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('ReadonlyArray');
23
- export const readonly: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Readonly');
24
- export const partial: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Partial');
25
- export const required: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Required');
26
- export const pick: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Pick');
27
- export const omit: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Omit');
28
- export const exclude: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Exclude');
29
- export const extract: TsGenericReferenceFactory<2> = tsReference.genericFactory<2>('Extract');
30
- export const nonNullable: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('NonNullable');
31
- export const parameters: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('Parameters');
32
- export const returnType: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('ReturnType');
33
- export const instanceType: TsGenericReferenceFactory<1> = tsReference.genericFactory<1>('InstanceType');
34
-
35
- export const blob: TsReferenceFactory = tsReference.factory('Blob');
@@ -1,19 +0,0 @@
1
- import { defaultOpenApiGeneratorConfig, type SourceBuilder, type StringBuilder } from '@goast/core';
2
-
3
- import { defaultTypeScriptGeneratorConfig, type TypeScriptGeneratorConfig } from '../../config.js';
4
- import { TypeScriptFileBuilder } from '../../file-builder.js';
5
-
6
- const tsConfigSymbol = Symbol();
7
- type _BuilderWithConfig = SourceBuilder & { [tsConfigSymbol]?: TypeScriptGeneratorConfig };
8
-
9
- export function getTypeScriptBuilderOptions(builder: StringBuilder): TypeScriptGeneratorConfig {
10
- if (builder instanceof TypeScriptFileBuilder) {
11
- return builder.options;
12
- }
13
- if (tsConfigSymbol in builder.options) {
14
- return builder.options[tsConfigSymbol] as TypeScriptGeneratorConfig;
15
- }
16
- const options = { ...defaultOpenApiGeneratorConfig, ...defaultTypeScriptGeneratorConfig, ...builder.options };
17
- (builder as _BuilderWithConfig)[tsConfigSymbol] = options;
18
- return options;
19
- }
@@ -1,27 +0,0 @@
1
- import type { BasicAppendValue, SourceBuilder } from '@goast/core';
2
-
3
- import { type TsObject, tsObject } from '../nodes/object.js';
4
- import { tsProperty } from '../nodes/property.js';
5
- import { type TsString, tsString } from '../nodes/string.js';
6
- import { type TsTuple, tsTuple } from '../nodes/tuple.js';
7
-
8
- export function toTsNode<TBuilder extends SourceBuilder>(object: Record<string, unknown>): TsObject<TBuilder>;
9
- export function toTsNode<TBuilder extends SourceBuilder>(tuple: unknown[]): TsTuple<TBuilder>;
10
- export function toTsNode<TBuilder extends SourceBuilder>(string: string): TsString<TBuilder>;
11
- export function toTsNode<TBuilder extends SourceBuilder>(value: unknown): BasicAppendValue<TBuilder>;
12
- export function toTsNode<TBuilder extends SourceBuilder>(value: unknown): unknown {
13
- if (Array.isArray(value)) {
14
- return tsTuple(value.map((x) => toTsNode<TBuilder>(x)));
15
- }
16
- if (typeof value === 'object' && value !== null) {
17
- const result = tsObject<TBuilder>();
18
- for (const [k, v] of Object.entries(value)) {
19
- result.members.push(tsProperty(k, { value: toTsNode(v) }));
20
- }
21
- return result;
22
- }
23
- if (value === null || value === undefined || typeof value === 'boolean' || typeof value === 'number') {
24
- return String(value);
25
- }
26
- return tsString(String(value));
27
- }
@@ -1,25 +0,0 @@
1
- import {
2
- type AppendValue,
3
- notNullish,
4
- type Nullable,
5
- type SingleOrMultiple,
6
- type SourceBuilder,
7
- toArray,
8
- } from '@goast/core';
9
-
10
- import type { TsNode } from '../node.js';
11
- import { writeTsNodes } from './write-ts-nodes.js';
12
-
13
- export function writeTsGenericParameters<TBuilder extends SourceBuilder>(
14
- builder: TBuilder,
15
- nodes: SingleOrMultiple<Nullable<TsNode<TBuilder> | AppendValue<TBuilder>>>,
16
- ): void {
17
- const filteredNodes = toArray(nodes).filter(notNullish);
18
- const multiline = filteredNodes.length > 2;
19
- builder.parenthesizeIf(
20
- filteredNodes.length > 0,
21
- '<>',
22
- (b) => writeTsNodes(b, filteredNodes, { separator: multiline ? ',\n' : ', ' }),
23
- { multiline },
24
- );
25
- }
@@ -1,28 +0,0 @@
1
- import { type AppendValue, isAppendValue, notNullish, type Nullable, type SourceBuilder } from '@goast/core';
2
-
3
- import type { TsNode } from '../node.js';
4
- import { tsDoc } from '../nodes/doc.js';
5
- import { TsMethod } from '../nodes/method.js';
6
- import { TsProperty } from '../nodes/property.js';
7
- import { writeTsNode } from './write-ts-nodes.js';
8
-
9
- export function writeTsMembers<TBuilder extends SourceBuilder>(
10
- builder: TBuilder,
11
- members: Nullable<AppendValue<TBuilder> | TsNode<TBuilder>>[],
12
- options?: { alreadyHasMembers?: boolean },
13
- ): void {
14
- const filteredMembers = members.filter(notNullish);
15
- builder.forEach(filteredMembers, (b, m, i) =>
16
- b.if(
17
- () =>
18
- !(m instanceof TsProperty && tsDoc.isEmpty(m.doc) && m.decorators.length === 0) &&
19
- !(m instanceof TsMethod && !m.body && tsDoc.isEmpty(m.doc) && m.decorators.length === 0) &&
20
- !isAppendValue(m),
21
- (b) =>
22
- b
23
- .if(i > 0 || !!options?.alreadyHasMembers, (b) => b.ensurePreviousLineEmpty())
24
- .append((b) => writeTsNode(b, m))
25
- .if(i < filteredMembers.length - 1, (b) => b.ensurePreviousLineEmpty()),
26
- (b) => b.append((b) => writeTsNode(b, m)).ensureCurrentLineEmpty(),
27
- ));
28
- }
@@ -1,35 +0,0 @@
1
- import {
2
- type AppendValue,
3
- notNullish,
4
- type Nullable,
5
- type Separator,
6
- type SingleOrMultiple,
7
- type SourceBuilder,
8
- toArray,
9
- } from '@goast/core';
10
-
11
- import { TsNode } from '../node.js';
12
-
13
- export function writeTsNode<TBuilder extends SourceBuilder>(
14
- builder: TBuilder,
15
- node: Nullable<AppendValue<TBuilder> | TsNode<TBuilder>>,
16
- ): void {
17
- if (node instanceof TsNode) {
18
- node.write(builder);
19
- } else {
20
- builder.append(node);
21
- }
22
- }
23
-
24
- export function writeTsNodes<TBuilder extends SourceBuilder>(
25
- builder: TBuilder,
26
- nodes: SingleOrMultiple<Nullable<AppendValue<TBuilder> | TsNode<TBuilder>>>,
27
- options?: { separator?: Separator<TBuilder, AppendValue<TBuilder> | TsNode<TBuilder>> },
28
- ): void {
29
- const filteredNodes = toArray(nodes).filter(notNullish);
30
- if (filteredNodes.length === 1) {
31
- writeTsNode(builder, filteredNodes[0]);
32
- } else if (filteredNodes.length > 1) {
33
- builder.forEach(filteredNodes, writeTsNode, { separator: options?.separator });
34
- }
35
- }