@goast/typescript 0.2.20 → 0.3.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.
Files changed (149) hide show
  1. package/README.md +41 -11
  2. package/assets/client/angular/angular-service.utils.ts +80 -80
  3. package/assets/client/angular/request-builder.ts +372 -372
  4. package/assets/client/fetch/fetch-client.utils.ts +52 -52
  5. package/assets/stubs/easy-network-stub/easy-network-stub.utils.ts +258 -258
  6. package/cjs/index.js +1 -0
  7. package/cjs/lib/ast/nodes/argument.js +1 -1
  8. package/cjs/lib/ast/nodes/array-type.js +1 -1
  9. package/cjs/lib/ast/nodes/call.js +1 -1
  10. package/cjs/lib/ast/nodes/class.js +1 -1
  11. package/cjs/lib/ast/nodes/constructor-parameter.js +1 -1
  12. package/cjs/lib/ast/nodes/decorator.js +1 -1
  13. package/cjs/lib/ast/nodes/enum-value.js +1 -1
  14. package/cjs/lib/ast/nodes/enum.js +1 -1
  15. package/cjs/lib/ast/nodes/export.js +1 -1
  16. package/cjs/lib/ast/nodes/function.js +1 -1
  17. package/cjs/lib/ast/nodes/generic-parameter.js +1 -1
  18. package/cjs/lib/ast/nodes/indexer.js +1 -1
  19. package/cjs/lib/ast/nodes/interface.js +1 -1
  20. package/cjs/lib/ast/nodes/intersection-type.js +1 -1
  21. package/cjs/lib/ast/nodes/lookup-type.js +1 -1
  22. package/cjs/lib/ast/nodes/method.js +1 -1
  23. package/cjs/lib/ast/nodes/parameter.js +1 -1
  24. package/cjs/lib/ast/nodes/property.js +2 -2
  25. package/cjs/lib/ast/nodes/reference.js +1 -1
  26. package/cjs/lib/ast/nodes/string.js +1 -1
  27. package/cjs/lib/ast/nodes/tuple.js +1 -1
  28. package/cjs/lib/ast/nodes/type-alias.js +1 -1
  29. package/cjs/lib/ast/nodes/typeof.js +1 -1
  30. package/cjs/lib/ast/nodes/union-type.js +1 -1
  31. package/cjs/lib/ast/nodes/variable.js +1 -1
  32. package/cjs/lib/ast/utils/get-type-script-builder-options.js +2 -3
  33. package/cjs/lib/ast/utils/to-ts-node.js +1 -2
  34. package/cjs/lib/ast/utils/write-ts-generic-parameters.js +1 -2
  35. package/cjs/lib/ast/utils/write-ts-members.js +1 -2
  36. package/cjs/lib/ast/utils/write-ts-nodes.js +2 -3
  37. package/cjs/lib/ast/utils/write-ts-parameters.js +1 -2
  38. package/cjs/lib/file-builder.js +2 -2
  39. package/cjs/lib/generators/models/model-generator.js +2 -1
  40. package/cjs/lib/generators/models/models-generator.js +12 -7
  41. package/cjs/lib/generators/models/models.js +13 -2
  42. package/cjs/lib/generators/services/angular-services/angular-service-generator.js +17 -15
  43. package/cjs/lib/generators/services/angular-services/angular-services-generator.js +17 -12
  44. package/cjs/lib/generators/services/angular-services/models.js +19 -3
  45. package/cjs/lib/generators/services/angular-services/refs.js +2 -3
  46. package/cjs/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +13 -12
  47. package/cjs/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +16 -11
  48. package/cjs/lib/generators/services/easy-network-stub/models.js +10 -2
  49. package/cjs/lib/generators/services/easy-network-stub/refs.js +2 -3
  50. package/cjs/lib/generators/services/fetch-clients/fetch-client-generator.js +16 -13
  51. package/cjs/lib/generators/services/fetch-clients/fetch-clients-generator.js +48 -13
  52. package/cjs/lib/generators/services/fetch-clients/models.js +13 -1
  53. package/cjs/lib/generators/services/fetch-clients/refs.js +2 -3
  54. package/cjs/lib/import-collection.js +1 -1
  55. package/cjs/lib/utils.js +5 -6
  56. package/esm/index.js +1 -0
  57. package/esm/lib/ast/nodes/argument.js +1 -1
  58. package/esm/lib/ast/nodes/array-type.js +1 -1
  59. package/esm/lib/ast/nodes/call.js +1 -1
  60. package/esm/lib/ast/nodes/class.js +1 -1
  61. package/esm/lib/ast/nodes/constructor-parameter.js +1 -1
  62. package/esm/lib/ast/nodes/decorator.js +1 -1
  63. package/esm/lib/ast/nodes/enum-value.js +1 -1
  64. package/esm/lib/ast/nodes/enum.js +1 -1
  65. package/esm/lib/ast/nodes/export.js +1 -1
  66. package/esm/lib/ast/nodes/function.js +1 -1
  67. package/esm/lib/ast/nodes/generic-parameter.js +1 -1
  68. package/esm/lib/ast/nodes/indexer.js +1 -1
  69. package/esm/lib/ast/nodes/interface.js +1 -1
  70. package/esm/lib/ast/nodes/intersection-type.js +1 -1
  71. package/esm/lib/ast/nodes/lookup-type.js +1 -1
  72. package/esm/lib/ast/nodes/method.js +1 -1
  73. package/esm/lib/ast/nodes/parameter.js +1 -1
  74. package/esm/lib/ast/nodes/property.js +2 -2
  75. package/esm/lib/ast/nodes/reference.js +1 -1
  76. package/esm/lib/ast/nodes/string.js +1 -1
  77. package/esm/lib/ast/nodes/tuple.js +1 -1
  78. package/esm/lib/ast/nodes/type-alias.js +1 -1
  79. package/esm/lib/ast/nodes/typeof.js +1 -1
  80. package/esm/lib/ast/nodes/union-type.js +1 -1
  81. package/esm/lib/ast/nodes/variable.js +1 -1
  82. package/esm/lib/ast/utils/get-type-script-builder-options.js +1 -1
  83. package/esm/lib/generators/models/model-generator.js +2 -1
  84. package/esm/lib/generators/models/models-generator.js +12 -7
  85. package/esm/lib/generators/models/models.js +13 -2
  86. package/esm/lib/generators/services/angular-services/angular-service-generator.js +17 -15
  87. package/esm/lib/generators/services/angular-services/angular-services-generator.js +17 -12
  88. package/esm/lib/generators/services/angular-services/models.js +19 -3
  89. package/esm/lib/generators/services/angular-services/refs.js +1 -1
  90. package/esm/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +13 -12
  91. package/esm/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +16 -11
  92. package/esm/lib/generators/services/easy-network-stub/models.js +10 -2
  93. package/esm/lib/generators/services/easy-network-stub/refs.js +1 -1
  94. package/esm/lib/generators/services/fetch-clients/fetch-client-generator.js +16 -13
  95. package/esm/lib/generators/services/fetch-clients/fetch-clients-generator.js +46 -11
  96. package/esm/lib/generators/services/fetch-clients/models.js +13 -1
  97. package/esm/lib/generators/services/fetch-clients/refs.js +1 -1
  98. package/esm/lib/import-collection.js +1 -1
  99. package/package.json +7 -6
  100. package/types/index.d.ts +1 -0
  101. package/types/lib/ast/nodes/argument.d.ts +1 -1
  102. package/types/lib/ast/nodes/array-type.d.ts +1 -1
  103. package/types/lib/ast/nodes/arrow-function.d.ts +1 -1
  104. package/types/lib/ast/nodes/call.d.ts +1 -1
  105. package/types/lib/ast/nodes/class.d.ts +1 -1
  106. package/types/lib/ast/nodes/constructor-parameter.d.ts +1 -1
  107. package/types/lib/ast/nodes/constructor.d.ts +1 -1
  108. package/types/lib/ast/nodes/decorator.d.ts +2 -2
  109. package/types/lib/ast/nodes/doc.d.ts +1 -1
  110. package/types/lib/ast/nodes/enum-value.d.ts +2 -2
  111. package/types/lib/ast/nodes/enum.d.ts +1 -1
  112. package/types/lib/ast/nodes/export.d.ts +2 -2
  113. package/types/lib/ast/nodes/function-type.d.ts +1 -1
  114. package/types/lib/ast/nodes/function.d.ts +1 -1
  115. package/types/lib/ast/nodes/generic-parameter.d.ts +1 -1
  116. package/types/lib/ast/nodes/indexer.d.ts +1 -1
  117. package/types/lib/ast/nodes/interface.d.ts +1 -1
  118. package/types/lib/ast/nodes/intersection-type.d.ts +1 -1
  119. package/types/lib/ast/nodes/lookup-type.d.ts +1 -1
  120. package/types/lib/ast/nodes/method.d.ts +2 -2
  121. package/types/lib/ast/nodes/object-type.d.ts +1 -1
  122. package/types/lib/ast/nodes/object.d.ts +1 -1
  123. package/types/lib/ast/nodes/parameter.d.ts +1 -1
  124. package/types/lib/ast/nodes/property-accessor.d.ts +2 -2
  125. package/types/lib/ast/nodes/property.d.ts +15 -15
  126. package/types/lib/ast/nodes/reference.d.ts +4 -4
  127. package/types/lib/ast/nodes/string.d.ts +1 -1
  128. package/types/lib/ast/nodes/tuple.d.ts +1 -1
  129. package/types/lib/ast/nodes/type-alias.d.ts +1 -1
  130. package/types/lib/ast/nodes/typeof.d.ts +2 -2
  131. package/types/lib/ast/nodes/union-type.d.ts +1 -1
  132. package/types/lib/ast/nodes/variable.d.ts +1 -1
  133. package/types/lib/ast/references/angular.d.ts +8 -8
  134. package/types/lib/ast/references/easy-network-stub.d.ts +6 -6
  135. package/types/lib/ast/references/rxjs.d.ts +5 -5
  136. package/types/lib/ast/references/typescript.d.ts +46 -46
  137. package/types/lib/config.d.ts +53 -9
  138. package/types/lib/generators/models/model-generator.d.ts +1 -1
  139. package/types/lib/generators/models/models.d.ts +43 -8
  140. package/types/lib/generators/services/angular-services/angular-services-generator.d.ts +1 -1
  141. package/types/lib/generators/services/angular-services/models.d.ts +61 -20
  142. package/types/lib/generators/services/angular-services/refs.d.ts +9 -9
  143. package/types/lib/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts +1 -1
  144. package/types/lib/generators/services/easy-network-stub/models.d.ts +35 -13
  145. package/types/lib/generators/services/easy-network-stub/refs.d.ts +14 -14
  146. package/types/lib/generators/services/fetch-clients/fetch-clients-generator.d.ts +4 -1
  147. package/types/lib/generators/services/fetch-clients/models.d.ts +63 -18
  148. package/types/lib/generators/services/fetch-clients/refs.d.ts +4 -4
  149. package/types/lib/utils.d.ts +2 -1
@@ -15,7 +15,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
15
15
  options: ctx.config,
16
16
  generator: (b) => b.append(this.getInterfaceFileContent(ctx)),
17
17
  });
18
- result.interface = { filePath, component: name };
18
+ result.clientInterface = { filePath, component: name };
19
19
  }
20
20
  if (this.shouldGenerateClass(ctx)) {
21
21
  const filePath = this.getClassFilePath(ctx);
@@ -26,7 +26,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
26
26
  options: ctx.config,
27
27
  generator: (b) => b.append(this.getClassFileContent(ctx)),
28
28
  });
29
- result.class = { filePath, component: name };
29
+ result.client = { filePath, component: name };
30
30
  }
31
31
  return result;
32
32
  }
@@ -53,7 +53,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
53
53
  const params = endpoint.parameters.filter((x) => x.target === 'path' || x.target === 'query');
54
54
  const bodySchema = (_b = (_a = endpoint.requestBody) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.schema;
55
55
  const responseSchema = this.getResponseSchema(ctx, endpoint);
56
- return ts.method(toCasing(endpoint.name, ctx.config.methodCasing), {
56
+ return ts.method(toCasing(endpoint.name, ctx.config.functionNameCasing), {
57
57
  doc: ts.doc({ description: endpoint.description, tags: [endpoint.deprecated ? ts.docTag('deprecated') : null] }),
58
58
  parameters: [
59
59
  params.length > 0
@@ -129,11 +129,11 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
129
129
  });
130
130
  }
131
131
  getServiceMethod(ctx, endpoint) {
132
- var _a, _b;
132
+ var _a, _b, _c;
133
133
  const method = this.getInterfaceEndpointMethod(ctx, endpoint);
134
134
  method.accessModifier = 'public';
135
135
  method.body = appendValueGroup([
136
- s `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${s.indent `
136
+ s `const url = new ${ctx.refs.urlBuilder()}(this.options.baseUrl)${s.indent `
137
137
  .withPath(${ts.string(endpoint.path)})${(b) => b.forEach(endpoint.parameters, (b, p) => {
138
138
  switch (p.target) {
139
139
  case 'path':
@@ -143,7 +143,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
143
143
  b.append(s `\n.withQueryParam(${ts.string(p.name)}, params.${toCasing(p.name, ctx.config.paramNameCasing)})`);
144
144
  break;
145
145
  }
146
- })}
146
+ })}
147
147
  .build();`}`,
148
148
  s `const response = (this.options.fetch ?? fetch)(url, ${ts.object({
149
149
  members: [
@@ -153,13 +153,13 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
153
153
  ],
154
154
  })});`,
155
155
  s `Object.defineProperty(response, 'isVoidResponse', { value: ${this.getResponseSchema(ctx, endpoint) ? 'false' : 'true'} });`,
156
- s `return response as unknown as ${method.returnType};`,
156
+ s `return response as unknown as ${(_c = method.returnType) !== null && _c !== void 0 ? _c : 'unknown'};`,
157
157
  ], '\n');
158
158
  return method;
159
159
  }
160
160
  // #endregion
161
161
  getSchemaType(ctx, schema, fallback) {
162
- const output = schema && ctx.input.models[schema.id];
162
+ const output = schema && ctx.input.typescript.models[schema.id];
163
163
  if (!output)
164
164
  return fallback !== null && fallback !== void 0 ? fallback : this.getAnyType(ctx);
165
165
  return (b) => b.appendModelUsage(output);
@@ -171,23 +171,26 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
171
171
  return ctx.config.clientFileKind === 'class' || ctx.config.clientFileKind === 'class-and-interface';
172
172
  }
173
173
  getInterfaceName(ctx) {
174
- return toCasing(ctx.service.name, ctx.config.interfaceNameCasing);
174
+ var _a;
175
+ return toCasing(ctx.service.name, (_a = ctx.config.clientInterfaceNameCasing) !== null && _a !== void 0 ? _a : ctx.config.typeNameCasing);
175
176
  }
176
177
  getClassName(ctx) {
177
- return toCasing(ctx.service.name, ctx.config.classNameCasing);
178
+ var _a;
179
+ return toCasing(ctx.service.name, (_a = ctx.config.clientNameCasing) !== null && _a !== void 0 ? _a : ctx.config.typeNameCasing);
178
180
  }
179
181
  getDefaultOptionsConstantName(ctx) {
180
182
  return toCasing(this.getClassName(ctx) + '-default-options', ctx.config.constantNameCasing);
181
183
  }
182
184
  getInterfaceFilePath(ctx) {
183
185
  var _a, _b;
184
- return resolve(ctx.config.outputDir, (_a = ctx.config.clientInterfaceDirPath) !== null && _a !== void 0 ? _a : ctx.config.clientDirPath, `${toCasing(ctx.service.name, (_b = ctx.config.interfaceFileNameCasing) !== null && _b !== void 0 ? _b : ctx.config.fileNameCasing)}.ts`);
186
+ return resolve(ctx.config.outputDir, (_a = ctx.config.clientInterfaceDir) !== null && _a !== void 0 ? _a : ctx.config.clientDir, `${toCasing(ctx.service.name, (_b = ctx.config.clientInterfaceFileNameCasing) !== null && _b !== void 0 ? _b : ctx.config.fileNameCasing)}.ts`);
185
187
  }
186
188
  getClassFilePath(ctx) {
187
- return resolve(ctx.config.outputDir, ctx.config.clientDirPath, `${toCasing(ctx.service.name, ctx.config.fileNameCasing)}.ts`);
189
+ var _a;
190
+ return resolve(ctx.config.outputDir, ctx.config.clientDir, `${toCasing(ctx.service.name, (_a = ctx.config.clientFileNameCasing) !== null && _a !== void 0 ? _a : ctx.config.fileNameCasing)}.ts`);
188
191
  }
189
192
  getUtilPath(ctx, fileName) {
190
- return resolve(ctx.config.outputDir, ctx.config.utilsDirPath, fileName);
193
+ return resolve(ctx.config.outputDir, ctx.config.utilsDir, fileName);
191
194
  }
192
195
  getResponseSchema(ctx, endpoint) {
193
196
  var _a, _b, _c;
@@ -6,7 +6,7 @@ import { defaultTypeScriptFetchClientsGeneratorConfig, } from './models';
6
6
  import { getReferenceFactories } from './refs';
7
7
  import { ts } from '../../../ast';
8
8
  import { TypeScriptFileBuilder } from '../../../file-builder';
9
- export class TypeScriptClientsGenerator extends OpenApiServicesGenerationProviderBase {
9
+ export class TypeScriptFetchClientsGenerator extends OpenApiServicesGenerationProviderBase {
10
10
  constructor(clientGeneratorFactory) {
11
11
  super();
12
12
  this._clientGeneratorFactory =
@@ -14,9 +14,12 @@ export class TypeScriptClientsGenerator extends OpenApiServicesGenerationProvide
14
14
  }
15
15
  initResult() {
16
16
  return {
17
- clients: {},
18
- indexFiles: {
19
- clients: undefined,
17
+ typescript: {
18
+ clients: {},
19
+ indexFiles: {
20
+ clients: undefined,
21
+ clientInterfaces: undefined,
22
+ },
20
23
  },
21
24
  };
22
25
  }
@@ -29,15 +32,19 @@ export class TypeScriptClientsGenerator extends OpenApiServicesGenerationProvide
29
32
  onGenerate(ctx) {
30
33
  this.copyUtilsFiles(ctx);
31
34
  const output = super.onGenerate(ctx);
32
- output.indexFiles.clients = this.generateIndexFile(ctx);
35
+ output.typescript.indexFiles.clients = this.generateIndexFile(ctx);
36
+ output.typescript.indexFiles.clientInterfaces = this.generateInterfaceIndexFile(ctx);
33
37
  return output;
34
38
  }
35
39
  generateService(ctx, service) {
36
40
  const clientGenerator = this._clientGeneratorFactory.create();
37
- return clientGenerator.generate(Object.assign(Object.assign({}, ctx), { service }));
41
+ return clientGenerator.generate({
42
+ ...ctx,
43
+ service,
44
+ });
38
45
  }
39
46
  addServiceResult(ctx, service, result) {
40
- ctx.output.clients[service.id] = result;
47
+ ctx.output.typescript.clients[service.id] = result;
41
48
  }
42
49
  generateIndexFile(ctx) {
43
50
  const filePath = this.getIndexFilePath(ctx);
@@ -49,18 +56,46 @@ export class TypeScriptClientsGenerator extends OpenApiServicesGenerationProvide
49
56
  });
50
57
  return filePath;
51
58
  }
59
+ generateInterfaceIndexFile(ctx) {
60
+ const filePath = this.getInterfaceIndexFilePath(ctx);
61
+ const clientsFilePath = this.getIndexFilePath(ctx);
62
+ if (filePath && filePath === clientsFilePath) {
63
+ return clientsFilePath;
64
+ }
65
+ TypeScriptFileBuilder.tryGenerate({
66
+ logName: 'client interfaces index file',
67
+ filePath,
68
+ options: ctx.config,
69
+ generator: (b) => b.append(this.getInterfaceIndexFileContent(ctx)),
70
+ });
71
+ return filePath;
72
+ }
52
73
  getIndexFilePath(ctx) {
53
- return ctx.config.indexFilePath ? resolve(ctx.config.outputDir, ctx.config.indexFilePath) : null;
74
+ return ctx.config.clientsIndexFile ? resolve(ctx.config.outputDir, ctx.config.clientsIndexFile) : null;
75
+ }
76
+ getInterfaceIndexFilePath(ctx) {
77
+ return ctx.config.clientInterfacesIndexFile
78
+ ? resolve(ctx.config.outputDir, ctx.config.clientInterfacesIndexFile)
79
+ : null;
54
80
  }
55
81
  getIndexFileContent(ctx) {
56
- return appendValueGroup(Object.values(ctx.output.clients)
57
- .flatMap((c) => [c.class, c.interface])
82
+ const cIndexPath = this.getIndexFilePath(ctx);
83
+ const iIndexPath = this.getInterfaceIndexFilePath(ctx);
84
+ return appendValueGroup((iIndexPath && iIndexPath === cIndexPath
85
+ ? Object.values(ctx.output.typescript.clients).flatMap((c) => [c.client, c.clientInterface])
86
+ : Object.values(ctx.output.typescript.clients).map((c) => c.client))
87
+ .filter(notNullish)
88
+ .map((x) => ts.export(x.component, x.filePath)));
89
+ }
90
+ getInterfaceIndexFileContent(ctx) {
91
+ return appendValueGroup(Object.values(ctx.output.typescript.clients)
92
+ .map((c) => c.clientInterface)
58
93
  .filter(notNullish)
59
94
  .map((x) => ts.export(x.component, x.filePath)));
60
95
  }
61
96
  copyUtilsFiles(ctx) {
62
97
  const sourceDir = resolve(dirname(require.resolve('@goast/typescript')), '../assets/client/fetch');
63
- const targetDir = resolve(ctx.config.outputDir, ctx.config.utilsDirPath);
98
+ const targetDir = resolve(ctx.config.outputDir, ctx.config.utilsDir);
64
99
  ensureDirSync(targetDir);
65
100
  const files = readdirSync(sourceDir);
66
101
  for (const file of files) {
@@ -1,2 +1,14 @@
1
1
  import { defaultTypeScriptGeneratorConfig } from '../../../config';
2
- export const defaultTypeScriptFetchClientsGeneratorConfig = Object.assign(Object.assign({}, defaultTypeScriptGeneratorConfig), { fileNameCasing: { casing: 'kebab', suffix: '-client' }, interfaceFileNameCasing: null, classNameCasing: { casing: 'pascal', suffix: 'Client' }, interfaceNameCasing: { prefix: 'I', casing: 'pascal', suffix: 'Client' }, methodCasing: 'camel', clientFileKind: 'class', clientDirPath: 'clients', clientInterfaceDirPath: 'clients/interfaces', indexFilePath: 'clients.ts', interfaceIndexFilePath: 'clients.ts', utilsDirPath: 'utils' });
2
+ export const defaultTypeScriptFetchClientsGeneratorConfig = {
3
+ ...defaultTypeScriptGeneratorConfig,
4
+ clientFileNameCasing: { casing: 'kebab', suffix: '-client' },
5
+ clientInterfaceFileNameCasing: undefined,
6
+ clientNameCasing: { casing: 'pascal', suffix: 'Client' },
7
+ clientInterfaceNameCasing: { prefix: 'I', casing: 'pascal', suffix: 'Client' },
8
+ clientFileKind: 'class',
9
+ clientDir: 'clients',
10
+ clientInterfaceDir: 'clients/interfaces',
11
+ clientsIndexFile: 'clients.ts',
12
+ clientInterfacesIndexFile: 'clients.ts',
13
+ utilsDir: 'utils',
14
+ };
@@ -2,7 +2,7 @@ import { resolve } from 'path';
2
2
  import { ts } from '../../../ast';
3
3
  // See packages/typescript/assets/client/fetch for reference
4
4
  export function getReferenceFactories(options) {
5
- const utilsDirPath = resolve(options.outputDir, options.utilsDirPath);
5
+ const utilsDirPath = resolve(options.outputDir, options.utilsDir);
6
6
  const fetchClientUtilsPath = resolve(utilsDirPath, 'fetch-client.utils.ts');
7
7
  return {
8
8
  // fetch-client.utils.ts
@@ -10,7 +10,7 @@ export class ImportExportCollection {
10
10
  constructor(options) {
11
11
  this._imports = new Map();
12
12
  this._exports = new Map();
13
- this._options = Object.assign(Object.assign({}, defaultImportExportCollectionOptions), options);
13
+ this._options = { ...defaultImportExportCollectionOptions, ...options };
14
14
  }
15
15
  get hasImports() {
16
16
  return this._imports.size > 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goast/typescript",
3
- "version": "0.2.20",
3
+ "version": "0.3.0",
4
4
  "repository": "https://github.com/MaSch0212/goast.git",
5
5
  "author": {
6
6
  "name": "Marc Schmidt (MaSch0212)",
@@ -10,11 +10,12 @@
10
10
  "type": "module",
11
11
  "dependencies": {
12
12
  "fs-extra": "^11.2.0",
13
- "node-fetch": "^2.7.0",
14
- "yaml": "^2.4.1",
15
- "@goast/core": "0.2.2",
16
- "tslib": "2.6.2"
13
+ "node-fetch": "^3.3.2",
14
+ "yaml": "^2.4.5",
15
+ "@goast/core": "0.3.0",
16
+ "tslib": "2.6.3"
17
17
  },
18
+ "packageManager": "pnpm@9.5.0",
18
19
  "module": "./esm/index.js",
19
20
  "main": "./cjs/index.js",
20
21
  "types": "./types/index.d.ts",
@@ -26,4 +27,4 @@
26
27
  },
27
28
  "./package.json": "./package.json"
28
29
  }
29
- }
30
+ }
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './lib/ast';
1
2
  export * from './lib/common-results';
2
3
  export * from './lib/config';
3
4
  export * from './lib/generators';
@@ -11,7 +11,7 @@ export declare class TsArgument<TBuilder extends SourceBuilder, TInjects extends
11
11
  constructor(options: Options<TBuilder, TInjects>);
12
12
  protected onWrite(builder: TBuilder): void;
13
13
  }
14
- export declare const tsArgument: (<TBuilder extends SourceBuilder<never>>(value: Options<TBuilder>['value'], options?: Prettify<Omit<Options<TBuilder>, 'value'>>) => TsArgument<TBuilder, never>) & {
14
+ export declare const tsArgument: (<TBuilder extends SourceBuilder>(value: Options<TBuilder>["value"], options?: Prettify<Omit<Options<TBuilder>, "value">>) => TsArgument<TBuilder, never>) & {
15
15
  write: typeof writeTsParameters;
16
16
  };
17
17
  export {};
@@ -13,7 +13,7 @@ export declare class TsArrayType<TBuilder extends SourceBuilder, TInjects extend
13
13
  constructor(options: Options<TBuilder, TInjects>);
14
14
  protected onWrite(builder: TBuilder): void;
15
15
  }
16
- export declare const tsArrayType: (<TBuilder extends SourceBuilder<never>>(type: Options<TBuilder>['type'], options?: Prettify<Omit<Options<TBuilder>, 'type'>>) => TsArrayType<TBuilder, never>) & {
16
+ export declare const tsArrayType: (<TBuilder extends SourceBuilder>(type: Options<TBuilder>["type"], options?: Prettify<Omit<Options<TBuilder>, "type">>) => TsArrayType<TBuilder, never>) & {
17
17
  write: typeof writeTsNodes;
18
18
  };
19
19
  export {};
@@ -23,7 +23,7 @@ export declare class TsArrowFunction<TBuilder extends SourceBuilder, TInjects ex
23
23
  constructor(options: Options<TBuilder, TInjects>);
24
24
  protected onWrite(builder: TBuilder): void;
25
25
  }
26
- export declare const tsArrowFunction: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsArrowFunction<TBuilder, never>) & {
26
+ export declare const tsArrowFunction: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsArrowFunction<TBuilder, never>) & {
27
27
  write: typeof writeTsNodes;
28
28
  };
29
29
  export {};
@@ -14,7 +14,7 @@ export declare class TsCall<TBuilder extends SourceBuilder, TInjects extends str
14
14
  constructor(options: Options<TBuilder, TInjects>);
15
15
  protected onWrite(builder: TBuilder): void;
16
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>) & {
17
+ export declare const tsCall: (<TBuilder extends SourceBuilder>(path: Options<TBuilder>["path"] | ArrayItem<Options<TBuilder>["path"]>, args?: Options<TBuilder>["arguments"], options?: Prettify<Omit<Options<TBuilder>, "path" | "arguments">>) => TsCall<TBuilder, never>) & {
18
18
  write: typeof writeTsNodes;
19
19
  };
20
20
  export {};
@@ -35,7 +35,7 @@ export declare class TsClass<TBuilder extends SourceBuilder, TInjects extends st
35
35
  constructor(options: Options<TBuilder, TInjects>);
36
36
  protected onWrite(builder: TBuilder): void;
37
37
  }
38
- export declare const tsClass: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsClass<TBuilder, never>) & {
38
+ export declare const tsClass: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsClass<TBuilder, never>) & {
39
39
  write: typeof writeTsNodes;
40
40
  };
41
41
  export {};
@@ -13,7 +13,7 @@ export declare class TsConstructorParameter<TBuilder extends SourceBuilder, TInj
13
13
  constructor(options: Options<TBuilder, TInjects>);
14
14
  protected onWrite(builder: TBuilder): void;
15
15
  }
16
- export declare const tsConstructorParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsConstructorParameter<TBuilder, never>) & {
16
+ export declare const tsConstructorParameter: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsConstructorParameter<TBuilder, never>) & {
17
17
  write: typeof writeTsParameters;
18
18
  };
19
19
  export {};
@@ -19,7 +19,7 @@ export declare class TsConstructor<TBuilder extends SourceBuilder, TInjects exte
19
19
  constructor(options: Options<TBuilder, TInjects>);
20
20
  protected onWrite(builder: TBuilder): void;
21
21
  }
22
- export declare const tsConstructor: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsConstructor<TBuilder, never>) & {
22
+ export declare const tsConstructor: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsConstructor<TBuilder, never>) & {
23
23
  write: typeof writeTsNodes;
24
24
  };
25
25
  export {};
@@ -14,8 +14,8 @@ export declare class TsDecorator<TBuilder extends SourceBuilder, TInjects extend
14
14
  constructor(options: Options<TBuilder, TInjects>);
15
15
  protected onWrite(builder: TBuilder): void;
16
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?: {
17
+ export declare const tsDecorator: (<TBuilder extends SourceBuilder>(fn: Options<TBuilder>["function"], args?: Options<TBuilder>["arguments"], options?: Prettify<Omit<Options<TBuilder>, "function" | "arguments">>) => TsDecorator<TBuilder, never>) & {
18
+ write: <TBuilder extends SourceBuilder>(builder: TBuilder, nodes: SingleOrMultiple<Nullable<TsDecorator<TBuilder> | AppendValue<TBuilder>>>, options?: {
19
19
  multiline?: boolean;
20
20
  }) => void;
21
21
  };
@@ -20,7 +20,7 @@ declare function getDoc<TBuilder extends SourceBuilder>(baseDoc: TsDoc<TBuilder>
20
20
  generics?: Nullable<Nullable<TsGenericParameter<TBuilder> | BasicAppendValue<TBuilder>>[]>;
21
21
  }): TsDoc<TBuilder> | null;
22
22
  declare function isDocEmpty(doc: Nullable<TsDoc<SourceBuilder>>): boolean;
23
- export declare const tsDoc: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsDoc<TBuilder, never>) & {
23
+ export declare const tsDoc: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsDoc<TBuilder, never>) & {
24
24
  write: typeof writeTsNodes;
25
25
  get: typeof getDoc;
26
26
  isEmpty: typeof isDocEmpty;
@@ -15,7 +15,7 @@ export declare class TsEnumValue<TBuilder extends SourceBuilder, TInjects extend
15
15
  constructor(options: Options<TBuilder, TInjects>);
16
16
  protected onWrite(builder: TBuilder): void;
17
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;
18
+ export declare const tsEnumValue: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsEnumValue<TBuilder, never>) & {
19
+ write: <TBuilder extends SourceBuilder>(builder: TBuilder, nodes: SingleOrMultiple<Nullable<TsEnumValue<TBuilder> | AppendValue<TBuilder>>>) => void;
20
20
  };
21
21
  export {};
@@ -20,7 +20,7 @@ export declare class TsEnum<TBuilder extends SourceBuilder, TInjects extends str
20
20
  constructor(options: Options<TBuilder, TInjects>);
21
21
  protected onWrite(builder: TBuilder): void;
22
22
  }
23
- export declare const tsEnum: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsEnum<TBuilder, never>) & {
23
+ export declare const tsEnum: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsEnum<TBuilder, never>) & {
24
24
  write: typeof writeTsNodes;
25
25
  };
26
26
  export {};
@@ -12,8 +12,8 @@ export declare class TsExport<TBuilder extends SourceBuilder, TInjects extends s
12
12
  constructor(options: Options<TBuilder, TInjects>);
13
13
  protected onWrite(builder: TBuilder): void;
14
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>) & {
15
+ export declare const createExport: <TBuilder extends SourceBuilder>(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>(name: Options<TBuilder>["name"], filePath: Options<TBuilder>["filePath"], options?: Prettify<Omit<Options<TBuilder>, "name" | "filePath">>) => TsExport<TBuilder, never>) & {
17
17
  write: typeof writeTsNodes;
18
18
  };
19
19
  export {};
@@ -17,7 +17,7 @@ export declare class TsFunctionType<TBuilder extends SourceBuilder, TInjects ext
17
17
  constructor(options: Options<TBuilder, TInjects>);
18
18
  protected onWrite(builder: TBuilder): void;
19
19
  }
20
- export declare const tsFunctionType: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsFunctionType<TBuilder, never>) & {
20
+ export declare const tsFunctionType: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsFunctionType<TBuilder, never>) & {
21
21
  write: typeof writeTsNodes;
22
22
  };
23
23
  export {};
@@ -29,7 +29,7 @@ export declare class TsFunction<TBuilder extends SourceBuilder, TInjects extends
29
29
  constructor(options: Options<TBuilder, TInjects>);
30
30
  protected onWrite(builder: TBuilder): void;
31
31
  }
32
- export declare const tsFunction: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsFunction<TBuilder, never>) & {
32
+ export declare const tsFunction: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsFunction<TBuilder, never>) & {
33
33
  write: typeof writeTsNodes;
34
34
  };
35
35
  export {};
@@ -19,7 +19,7 @@ export declare class TsGenericParameter<TBuilder extends SourceBuilder, TInjects
19
19
  constructor(options: Options<TBuilder, TInjects>);
20
20
  protected onWrite(builder: TBuilder): void;
21
21
  }
22
- export declare const tsGenericParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsGenericParameter<TBuilder, never>) & {
22
+ export declare const tsGenericParameter: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsGenericParameter<TBuilder, never>) & {
23
23
  write: typeof writeTsGenericParameters;
24
24
  };
25
25
  export {};
@@ -17,7 +17,7 @@ export declare class TsIndexer<TBuilder extends SourceBuilder, TInjects extends
17
17
  constructor(options: Options<TBuilder, TInjects>);
18
18
  protected onWrite(builder: TBuilder): void;
19
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>) & {
20
+ export declare const tsIndexer: (<TBuilder extends SourceBuilder>(keyType: Options<TBuilder>["keyType"], valueType: Options<TBuilder>["valueType"], options?: Prettify<Omit<Options<TBuilder>, "keyType" | "valueType">>) => TsIndexer<TBuilder, never>) & {
21
21
  write: typeof writeTsNodes;
22
22
  };
23
23
  export {};
@@ -30,7 +30,7 @@ export declare class TsInterface<TBuilder extends SourceBuilder, TInjects extend
30
30
  constructor(options: Options<TBuilder, TInjects>);
31
31
  protected onWrite(builder: TBuilder): void;
32
32
  }
33
- export declare const tsInterface: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsInterface<TBuilder, never>) & {
33
+ export declare const tsInterface: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsInterface<TBuilder, never>) & {
34
34
  write: typeof writeTsNodes;
35
35
  };
36
36
  export {};
@@ -11,7 +11,7 @@ export declare class TsIntersectionType<TBuilder extends SourceBuilder, TInjects
11
11
  constructor(options: Options<TBuilder, TInjects>);
12
12
  protected onWrite(builder: TBuilder): void;
13
13
  }
14
- export declare const tsIntersectionType: (<TBuilder extends SourceBuilder<never>>(types: Options<TBuilder>['types'], options?: Prettify<Omit<Options<TBuilder>, 'types'>>) => TsIntersectionType<TBuilder, never>) & {
14
+ export declare const tsIntersectionType: (<TBuilder extends SourceBuilder>(types: Options<TBuilder>["types"], options?: Prettify<Omit<Options<TBuilder>, "types">>) => TsIntersectionType<TBuilder, never>) & {
15
15
  write: typeof writeTsNodes;
16
16
  };
17
17
  export {};
@@ -13,7 +13,7 @@ export declare class TsLookupType<TBuilder extends SourceBuilder, TInjects exten
13
13
  constructor(options: Options<TBuilder, TInjects>);
14
14
  protected onWrite(builder: TBuilder): void;
15
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>) & {
16
+ export declare const tsLookupType: (<TBuilder extends SourceBuilder>(type: Options<TBuilder>["type"], index: Options<TBuilder>["index"], options?: Omit<Options<TBuilder>, "type" | "index">) => TsLookupType<TBuilder, never>) & {
17
17
  write: typeof writeTsNodes;
18
18
  };
19
19
  export {};
@@ -38,8 +38,8 @@ export declare class TsMethod<TBuilder extends SourceBuilder, TInjects extends s
38
38
  constructor(options: Options<TBuilder, TInjects>);
39
39
  protected onWrite(builder: TBuilder): void;
40
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>) & {
41
+ export declare const createMethod: <TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsMethod<TBuilder, never>;
42
+ export declare const tsMethod: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsMethod<TBuilder, never>) & {
43
43
  write: typeof writeTsNodes;
44
44
  };
45
45
  export {};
@@ -14,7 +14,7 @@ export declare class TsObjectType<TBuilder extends SourceBuilder, TInjects exten
14
14
  constructor(options: Options<TBuilder, TInjects>);
15
15
  protected onWrite(builder: TBuilder): void;
16
16
  }
17
- export declare const tsObjectType: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsObjectType<TBuilder, never>) & {
17
+ export declare const tsObjectType: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsObjectType<TBuilder, never>) & {
18
18
  write: typeof writeTsNodes;
19
19
  };
20
20
  export {};
@@ -13,7 +13,7 @@ export declare class TsObject<TBuilder extends SourceBuilder, TInjects extends s
13
13
  constructor(options: Options<TBuilder, TInjects>);
14
14
  protected onWrite(builder: TBuilder): void;
15
15
  }
16
- export declare const tsObject: (<TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsObject<TBuilder, never>) & {
16
+ export declare const tsObject: (<TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsObject<TBuilder, never>) & {
17
17
  write: typeof writeTsNodes;
18
18
  };
19
19
  export {};
@@ -22,7 +22,7 @@ export declare class TsParameter<TBuilder extends SourceBuilder, TInjects extend
22
22
  constructor(options: Options<TBuilder, TInjects>);
23
23
  protected onWrite(builder: TBuilder): void;
24
24
  }
25
- export declare const tsParameter: (<TBuilder extends SourceBuilder<never>>(name: Options<TBuilder>['name'], options?: Prettify<Omit<Options<TBuilder>, 'name'>>) => TsParameter<TBuilder, never>) & {
25
+ export declare const tsParameter: (<TBuilder extends SourceBuilder>(name: Options<TBuilder>["name"], options?: Prettify<Omit<Options<TBuilder>, "name">>) => TsParameter<TBuilder, never>) & {
26
26
  write: typeof writeTsParameters;
27
27
  };
28
28
  export {};
@@ -48,6 +48,6 @@ export declare class TsPropertySetter<TBuilder extends SourceBuilder, TInjects e
48
48
  export declare class TsPropertyGetter<TBuilder extends SourceBuilder, TInjects extends string = never> extends TsPropertyAccessor<TBuilder, TInjects> {
49
49
  protected onWrite(builder: TBuilder): void;
50
50
  }
51
- export declare const createPropertySetter: <TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsPropertySetter<TBuilder, never>;
52
- export declare const createPropertyGetter: <TBuilder extends SourceBuilder<never>>(options?: Options<TBuilder>) => TsPropertyGetter<TBuilder, never>;
51
+ export declare const createPropertySetter: <TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsPropertySetter<TBuilder, never>;
52
+ export declare const createPropertyGetter: <TBuilder extends SourceBuilder>(options?: Options<TBuilder>) => TsPropertyGetter<TBuilder, never>;
53
53
  export {};
@@ -54,31 +54,31 @@ export declare class TsAccessorProperty<TBuilder extends SourceBuilder, TInjects
54
54
  constructor(options: AccessorOptions<TBuilder, TInjects>);
55
55
  protected onWrite(builder: TBuilder): void;
56
56
  }
57
- export declare const tsProperty: (<TBuilder extends SourceBuilder<never>>(name: BaseOptions<TBuilder>['name'], options?: Prettify<Omit<SimpleOptions<TBuilder>, 'name'>> | Prettify<Omit<AccessorOptions<TBuilder>, 'name'>>) => TsAccessorProperty<TBuilder, ""> | TsSimpleProperty<TBuilder, "">) & {
57
+ export declare const tsProperty: (<TBuilder extends SourceBuilder>(name: BaseOptions<TBuilder>["name"], options?: Prettify<Omit<SimpleOptions<TBuilder>, "name">> | Prettify<Omit<AccessorOptions<TBuilder>, "name">>) => TsAccessorProperty<TBuilder, ""> | TsSimpleProperty<TBuilder, "">) & {
58
58
  write: typeof writeTsNodes;
59
- getter: <TBuilder_1 extends SourceBuilder<never>>(options?: {
59
+ getter: <TBuilder extends SourceBuilder>(options?: {
60
60
  propertyName?: Nullable<string>;
61
- doc?: Nullable<TsDoc<TBuilder_1, never>>;
62
- type?: Nullable<TsType<TBuilder_1>>;
63
- decorators?: Nullable<Nullable<TsDecorator<TBuilder_1, never>>[]>;
64
- body?: Nullable<import("@goast/core").AppendValue<TBuilder_1>>;
61
+ doc?: Nullable<TsDoc<TBuilder, never>>;
62
+ type?: Nullable<TsType<TBuilder>>;
63
+ decorators?: Nullable<Nullable<TsDecorator<TBuilder, never>>[]>;
64
+ body?: Nullable<import("@goast/core").AppendValue<TBuilder>>;
65
65
  accessModifier?: Nullable<TsAccessModifier>;
66
66
  static?: Nullable<boolean>;
67
67
  abstract?: Nullable<boolean>;
68
68
  override?: Nullable<boolean>;
69
- inject?: import("@goast/core").AstNodeInject<TBuilder_1, ""> | undefined;
70
- } | undefined) => TsPropertyGetter<TBuilder_1, never>;
71
- setter: <TBuilder_2 extends SourceBuilder<never>>(options?: {
69
+ inject?: import("@goast/core").AstNodeInject<TBuilder, ""> | undefined;
70
+ }) => TsPropertyGetter<TBuilder, never>;
71
+ setter: <TBuilder extends SourceBuilder>(options?: {
72
72
  propertyName?: Nullable<string>;
73
- doc?: Nullable<TsDoc<TBuilder_2, never>>;
74
- type?: Nullable<TsType<TBuilder_2>>;
75
- decorators?: Nullable<Nullable<TsDecorator<TBuilder_2, never>>[]>;
76
- body?: Nullable<import("@goast/core").AppendValue<TBuilder_2>>;
73
+ doc?: Nullable<TsDoc<TBuilder, never>>;
74
+ type?: Nullable<TsType<TBuilder>>;
75
+ decorators?: Nullable<Nullable<TsDecorator<TBuilder, never>>[]>;
76
+ body?: Nullable<import("@goast/core").AppendValue<TBuilder>>;
77
77
  accessModifier?: Nullable<TsAccessModifier>;
78
78
  static?: Nullable<boolean>;
79
79
  abstract?: Nullable<boolean>;
80
80
  override?: Nullable<boolean>;
81
- inject?: import("@goast/core").AstNodeInject<TBuilder_2, ""> | undefined;
82
- } | undefined) => TsPropertySetter<TBuilder_2, never>;
81
+ inject?: import("@goast/core").AstNodeInject<TBuilder, ""> | undefined;
82
+ }) => TsPropertySetter<TBuilder, never>;
83
83
  };
84
84
  export {};