@goast/typescript 0.3.7 → 0.3.8-beta1

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.
@@ -189,7 +189,7 @@ class DefaultTypeScriptK6ClientGenerator extends file_generator_1.TypeScriptFile
189
189
  ],
190
190
  }),
191
191
  parameters: [ast_1.ts.constructorParameter('rootUrl'), ast_1.ts.constructorParameter('defaultK6ParamsFactory')],
192
- body: (0, core_1.builderTemplate) `this.rootUrl = rootUrl;
192
+ body: (0, core_1.builderTemplate) `this.rootUrl = rootUrl;
193
193
  this._defaultK6ParamsFactory = defaultK6ParamsFactory;`,
194
194
  }),
195
195
  ...ctx.service.endpoints.map((e) => this.getEndpointMethod(ctx, e)),
@@ -248,11 +248,11 @@ class DefaultTypeScriptK6ClientGenerator extends file_generator_1.TypeScriptFile
248
248
  }
249
249
  : null,
250
250
  '',
251
- (0, core_1.builderTemplate) `return /** @type {${returnType}} */ (${core_1.builderTemplate.indent `
252
- ${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
253
- accept: ${ast_1.ts.string(accept)},
254
- params: this.getK6Params(k6Params),`}
255
- })`}
251
+ (0, core_1.builderTemplate) `return /** @type {${returnType}} */ (${core_1.builderTemplate.indent `
252
+ ${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${core_1.builderTemplate.indent `
253
+ accept: ${ast_1.ts.string(accept)},
254
+ params: this.getK6Params(k6Params),`}
255
+ })`}
256
256
  );`,
257
257
  ], '\n'),
258
258
  });
@@ -28,3 +28,4 @@ export const nonNullable = tsReference.genericFactory('NonNullable');
28
28
  export const parameters = tsReference.genericFactory('Parameters');
29
29
  export const returnType = tsReference.genericFactory('ReturnType');
30
30
  export const instanceType = tsReference.genericFactory('InstanceType');
31
+ export const blob = tsReference.factory('Blob');
@@ -200,7 +200,7 @@ export class DefaultTypeScriptModelGenerator extends TypeScriptFileGenerator {
200
200
  case 'number':
201
201
  return 'number';
202
202
  case 'string':
203
- return 'string';
203
+ return this.getStringType(ctx, schema);
204
204
  case 'null':
205
205
  return 'null';
206
206
  case 'unknown':
@@ -219,6 +219,12 @@ export class DefaultTypeScriptModelGenerator extends TypeScriptFileGenerator {
219
219
  return this.getAnyType(ctx);
220
220
  }
221
221
  }
222
+ getStringType(ctx, schema) {
223
+ if (schema.format === 'binary') {
224
+ return ts.refs.blob();
225
+ }
226
+ return 'string';
227
+ }
222
228
  getArrayType(ctx, schema) {
223
229
  var _a;
224
230
  return ts.arrayType((_a = this.getType(ctx, schema.items)) !== null && _a !== void 0 ? _a : this.getAnyType(ctx), {
@@ -287,7 +293,7 @@ export class DefaultTypeScriptModelGenerator extends TypeScriptFileGenerator {
287
293
  return ts.unionType(schema.type.map((x) => {
288
294
  switch (x) {
289
295
  case 'string':
290
- return 'string';
296
+ return this.getStringType(ctx, schema);
291
297
  case 'number':
292
298
  case 'integer':
293
299
  return 'number';
@@ -228,13 +228,13 @@ export class DefaultTypeScriptAngularServiceGenerator extends TypeScriptFileGene
228
228
  }
229
229
  : null,
230
230
  '',
231
- s `return ${ctx.refs.waitForResponse([responseModelType])}(${s.indent `
232
- this.http.request(rb.build({${s.indent `
233
- responseType: ${ts.string(responseType)},
234
- accept: ${ts.string(accept)},
235
- context,`}
236
- })),
237
- {${s.indent `
231
+ s `return ${ctx.refs.waitForResponse([responseModelType])}(${s.indent `
232
+ this.http.request(rb.build({${s.indent `
233
+ responseType: ${ts.string(responseType)},
234
+ accept: ${ts.string(accept)},
235
+ context,`}
236
+ })),
237
+ {${s.indent `
238
238
  errorResponseTypes: ${ts.object({
239
239
  members: [
240
240
  ...Object.entries(this.getEndpointStatusCodes(ctx, endpoint))
@@ -243,8 +243,8 @@ export class DefaultTypeScriptAngularServiceGenerator extends TypeScriptFileGene
243
243
  return ts.property(key, { value: ts.string(value.parser) });
244
244
  }),
245
245
  ],
246
- })}`}
247
- }`}
246
+ })}`}
247
+ }`}
248
248
  )`,
249
249
  ], '\n'),
250
250
  });
@@ -94,15 +94,15 @@ export class DefaultTypeScriptEasyNetworkStubGenerator extends TypeScriptFileGen
94
94
  ],
95
95
  returnType: 'this',
96
96
  body: appendValueGroup([
97
- s `this.stubWrapper.stub2<${requestType}>()(${s.indent `
98
- ${ts.string(endpoint.method.toUpperCase())},
99
- ${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
100
- async (request) => {${s.indent `
101
- if (this.stubWrapper.options.rememberRequests) {${s.indent `
102
- this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
103
- }
104
- throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
105
- }`}
97
+ s `this.stubWrapper.stub2<${requestType}>()(${s.indent `
98
+ ${ts.string(endpoint.method.toUpperCase())},
99
+ ${this.getStubClassName(ctx)}.${this.getEndpointPathPropertyName(ctx, endpoint)},
100
+ async (request) => {${s.indent `
101
+ if (this.stubWrapper.options.rememberRequests) {${s.indent `
102
+ this.${this.getEndpointRequestsFieldName(ctx, endpoint)}.push(request);`}
103
+ }
104
+ throw await response(${this.getResponderVariableName(ctx, endpoint)}, request);`}
105
+ }`}
106
106
  );`,
107
107
  'return this;',
108
108
  ], '\n'),
@@ -133,7 +133,7 @@ export class DefaultTypeScriptFetchClientGenerator extends TypeScriptFileGenerat
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: [
@@ -186,7 +186,7 @@ export class DefaultTypeScriptK6ClientGenerator extends TypeScriptFileGenerator
186
186
  ],
187
187
  }),
188
188
  parameters: [ts.constructorParameter('rootUrl'), ts.constructorParameter('defaultK6ParamsFactory')],
189
- body: s `this.rootUrl = rootUrl;
189
+ body: s `this.rootUrl = rootUrl;
190
190
  this._defaultK6ParamsFactory = defaultK6ParamsFactory;`,
191
191
  }),
192
192
  ...ctx.service.endpoints.map((e) => this.getEndpointMethod(ctx, e)),
@@ -245,11 +245,11 @@ export class DefaultTypeScriptK6ClientGenerator extends TypeScriptFileGenerator
245
245
  }
246
246
  : null,
247
247
  '',
248
- s `return /** @type {${returnType}} */ (${s.indent `
249
- ${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
250
- accept: ${ts.string(accept)},
251
- params: this.getK6Params(k6Params),`}
252
- })`}
248
+ s `return /** @type {${returnType}} */ (${s.indent `
249
+ ${ctx.config.async ? 'await rb.buildAsync' : 'rb.build'}({${s.indent `
250
+ accept: ${ts.string(accept)},
251
+ params: this.getK6Params(k6Params),`}
252
+ })`}
253
253
  );`,
254
254
  ], '\n'),
255
255
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goast/typescript",
3
- "version": "0.3.7",
3
+ "version": "0.3.8-beta1",
4
4
  "repository": "https://github.com/MaSch0212/goast.git",
5
5
  "description": "Provides gOAst generators for generating TypeScript code from OpenAPI specifications.",
6
6
  "keywords": [
@@ -30,7 +30,6 @@
30
30
  "@goast/core": "0.3.5",
31
31
  "tslib": "2.6.3"
32
32
  },
33
- "packageManager": "pnpm@9.5.0",
34
33
  "module": "./esm/index.js",
35
34
  "main": "./cjs/index.js",
36
35
  "types": "./types/index.d.ts",
@@ -42,4 +41,4 @@
42
41
  },
43
42
  "./package.json": "./package.json"
44
43
  }
45
- }
44
+ }
@@ -189,3 +189,9 @@ export declare const instanceType: (<TBuilder extends import("@goast/core").Sour
189
189
  moduleNameOrfilePath: import("@goast/core").Nullable<string>;
190
190
  infer: <TBuilder extends import("@goast/core").SourceBuilder>() => import("../nodes/reference").TsReference<TBuilder, never>;
191
191
  };
192
+ export declare const blob: (<TBuilder extends import("@goast/core").SourceBuilder>(options?: {
193
+ importType?: import("@goast/core").Nullable<import("../../common-results").TypeScriptImportType>;
194
+ }) => import("../nodes/reference").TsReference<TBuilder, never>) & {
195
+ refName: string;
196
+ moduleNameOrfilePath: import("@goast/core").Nullable<string>;
197
+ };
@@ -1,4 +1,4 @@
1
- import { ApiSchema, AppendValueGroup, ArrayLikeApiSchema, CombinedLikeApiSchema, Nullable, ObjectLikeApiSchema } from '@goast/core';
1
+ import { ApiSchema, AppendValueGroup, ArrayLikeApiSchema, CombinedLikeApiSchema, Nullable, ObjectLikeApiSchema, StringLikeApiSchema } from '@goast/core';
2
2
  import { TypeScriptModelGeneratorContext, TypeScriptModelGeneratorOutput } from './models';
3
3
  import { ts } from '../../ast';
4
4
  import { TypeScriptComponentOutputKind } from '../../common-results';
@@ -24,6 +24,7 @@ export declare class DefaultTypeScriptModelGenerator extends TypeScriptFileGener
24
24
  skipSchemas?: boolean;
25
25
  useBaseType?: boolean;
26
26
  }): ts.Type<Builder> | null;
27
+ protected getStringType(ctx: Context, schema: StringLikeApiSchema): ts.Type<Builder>;
27
28
  protected getArrayType(ctx: Context, schema: ArrayLikeApiSchema): ts.Type<Builder>;
28
29
  protected getObjectType(ctx: Context, schema: ObjectLikeApiSchema): ts.Type<Builder>;
29
30
  protected getDiscriminatorType(ctx: Context, schema: ApiSchema): ts.Type<Builder>;