From f338fce09d9f7a092f5bd55b2be4397b149def8b Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:24:54 +0100 Subject: [PATCH 01/22] feat(typescript-rxjs): add support for returning statusCode and progressSubscriber via function overloading --- .../resources/typescript-rxjs/apis.mustache | 10 +++++-- .../typescript-rxjs/runtime.mustache | 29 +++++++++++++++---- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache index 6fc3928c4872..79a6bea5debc 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache @@ -1,7 +1,7 @@ // tslint:disable {{>licenseInfo}} import { Observable } from 'rxjs'; -import { BaseAPI{{#hasHttpHeaders}}, HttpHeaders{{/hasHttpHeaders}}{{#hasQueryParams}}, HttpQuery{{/hasQueryParams}}{{#hasRequiredParams}}, throwIfNullOrUndefined{{/hasRequiredParams}}{{#hasPathParams}}, encodeURI{{/hasPathParams}}{{#hasListContainers}}, COLLECTION_FORMATS{{/hasListContainers}} } from '../runtime'; +import { BaseAPI{{#hasHttpHeaders}}, HttpHeaders{{/hasHttpHeaders}}{{#hasQueryParams}}, HttpQuery{{/hasQueryParams}}{{#hasRequiredParams}}, throwIfNullOrUndefined{{/hasRequiredParams}}{{#hasPathParams}}, encodeURI{{/hasPathParams}}{{#hasListContainers}}, COLLECTION_FORMATS{{/hasListContainers}}, OperationOpts, ResponseWithExtras } from '../runtime'; {{#imports.0}} import { {{#imports}} @@ -37,7 +37,10 @@ export class {{classname}} extends BaseAPI { * {{&summary}} {{/summary}} */ - {{nickname}} = ({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> => { + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: Pick): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}{{{returnType}}} | ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> { {{#hasParams}} {{#allParams}} {{#required}} @@ -206,7 +209,8 @@ export class {{classname}} extends BaseAPI { {{#isResponseFile}} responseType: 'blob' {{/isResponseFile}} - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; {{/operation}} diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 366d9b5c4419..5c240ccc1f7a 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -1,6 +1,6 @@ // tslint:disable {{>licenseInfo}} -import { Observable, of } from 'rxjs'; +import { Observable, of, Subscriber } from 'rxjs'; import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax'; import { map, concatMap } from 'rxjs/operators'; @@ -73,15 +73,19 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request = (requestOpts: RequestOpts): Observable => - this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( + protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { - if (res.status >= 200 && res.status < 300) { - return res.response as T; + const { status, response } = res; + if (status >= 200 && status < 300) { + return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; } throw res; }) ); + } private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { let url = this.configuration.basePath + requestOpts.path; @@ -153,6 +157,21 @@ export interface RequestOpts { query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; + progressSubscriber?: Subscriber; +} + +export interface ResponseOpts { + withStatusCode?: boolean; +} + +export interface OperationOpts { + progressSubscriber?: Subscriber; + responseOpts?: ResponseOpts; +} + +export interface ResponseWithExtras { + data: T; + statusCode: number; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); From c1923af9f2b8173f762b47face8f2d0f3cf7fa3d Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:26:19 +0100 Subject: [PATCH 02/22] feat(typescript-rxjs): use ?? instead of || to support relative basePath of "", upgrade to typescript 3.7 --- .../src/main/resources/typescript-rxjs/package.mustache | 4 ++-- .../src/main/resources/typescript-rxjs/runtime.mustache | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/package.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/package.mustache index 89f0f03561c8..26c1529a3a2d 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/package.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/package.mustache @@ -6,14 +6,14 @@ "main": "./dist/index.js", "typings": "./dist/index.d.ts", "scripts" : { - "build": "tsc --outDir dist/", + "build": "node_modules/.bin/tsc --outDir dist/", "prepare": "npm run build" }, "dependencies": { "rxjs": "^6.3.3" }, "devDependencies": { - "typescript": "^3.0.1" + "typescript": "^3.7" }{{#npmRepository}},{{/npmRepository}} {{#npmRepository}} "publishConfig": { diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 5c240ccc1f7a..fc6c38176fb4 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -19,11 +19,11 @@ export class Configuration { constructor(private configuration: ConfigurationParameters = {}) {} get basePath(): string { - return this.configuration.basePath || BASE_PATH; + return this.configuration.basePath ?? BASE_PATH; } get middleware(): Middleware[] { - return this.configuration.middleware || []; + return this.configuration.middleware ?? []; } get username(): string | undefined { @@ -101,7 +101,7 @@ export class BaseAPI { method: requestOpts.method, headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType || 'json', + responseType: requestOpts.responseType ?? 'json', }; } From 00cd0da53297513c6c2c2d95a801d503051608b3 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:28:55 +0100 Subject: [PATCH 03/22] feat(typescript-rxjs): regenerate samples --- .../builds/default/apis/PetApi.ts | 66 ++++++++++++++----- .../builds/default/apis/StoreApi.ts | 34 +++++++--- .../builds/default/apis/UserApi.ts | 66 ++++++++++++++----- .../typescript-rxjs/builds/default/runtime.ts | 35 +++++++--- .../builds/es6-target/apis/PetApi.ts | 66 ++++++++++++++----- .../builds/es6-target/apis/StoreApi.ts | 34 +++++++--- .../builds/es6-target/apis/UserApi.ts | 66 ++++++++++++++----- .../builds/es6-target/package.json | 4 +- .../builds/es6-target/runtime.ts | 35 +++++++--- .../builds/with-interfaces/apis/PetApi.ts | 66 ++++++++++++++----- .../builds/with-interfaces/apis/StoreApi.ts | 34 +++++++--- .../builds/with-interfaces/apis/UserApi.ts | 66 ++++++++++++++----- .../builds/with-interfaces/runtime.ts | 35 +++++++--- .../builds/with-npm-version/apis/PetApi.ts | 66 ++++++++++++++----- .../builds/with-npm-version/apis/StoreApi.ts | 34 +++++++--- .../builds/with-npm-version/apis/UserApi.ts | 66 ++++++++++++++----- .../builds/with-npm-version/package.json | 4 +- .../builds/with-npm-version/runtime.ts | 35 +++++++--- 18 files changed, 604 insertions(+), 208 deletions(-) diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts index 3b3232c44dbb..ca4657ca5da5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; import { ApiResponse, Pet, @@ -63,7 +63,10 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet = ({ body }: AddPetRequest): Observable => { + addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest, opts?: Pick): Observable + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -82,13 +85,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { + deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -106,14 +113,18 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -135,14 +146,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -164,14 +179,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a single pet * Find pet by ID */ - getPetById = ({ petId }: GetPetByIdRequest): Observable => { + getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -182,13 +201,17 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet = ({ body }: UpdatePetRequest): Observable => { + updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -207,13 +230,17 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -235,13 +262,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -263,7 +294,8 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts index aac36206d606..824fd499b3fd 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { Order, } from '../models'; @@ -38,20 +38,27 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { + deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory = (): Observable<{ [key: string]: number; }> => { + getInventory(): Observable<{ [key: string]: number; }> + getInventory(opts?: Pick): Observable<{ [key: string]: number; }> + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; @@ -60,26 +67,34 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { + getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder = ({ body }: PlaceOrderRequest): Observable => { + placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -91,7 +106,8 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts index 1b3c07eea4f7..c13ab3ef3de8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { User, } from '../models'; @@ -56,7 +56,10 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser = ({ body }: CreateUserRequest): Observable => { + createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest, opts?: Pick): Observable + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -68,13 +71,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -86,13 +93,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -104,38 +115,50 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Delete user */ - deleteUser = ({ username }: DeleteUserRequest): Observable => { + deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName = ({ username }: GetUserByNameRequest): Observable => { + getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser = ({ username, password }: LoginUserRequest): Observable => { + loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -148,24 +171,32 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser = (): Observable => { + logoutUser(): Observable + logoutUser(opts?: Pick): Observable + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Updated user */ - updateUser = ({ username, body }: UpdateUserRequest): Observable => { + updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -178,7 +209,8 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index e4c93e87e513..07959259950b 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -11,7 +11,7 @@ * Do not edit the class manually. */ -import { Observable, of } from 'rxjs'; +import { Observable, of, Subscriber } from 'rxjs'; import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax'; import { map, concatMap } from 'rxjs/operators'; @@ -30,11 +30,11 @@ export class Configuration { constructor(private configuration: ConfigurationParameters = {}) {} get basePath(): string { - return this.configuration.basePath || BASE_PATH; + return this.configuration.basePath ?? BASE_PATH; } get middleware(): Middleware[] { - return this.configuration.middleware || []; + return this.configuration.middleware ?? []; } get username(): string | undefined { @@ -84,15 +84,19 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request = (requestOpts: RequestOpts): Observable => - this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( + protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { - if (res.status >= 200 && res.status < 300) { - return res.response as T; + const { status, response } = res; + if (status >= 200 && status < 300) { + return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; } throw res; }) ); + } private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { let url = this.configuration.basePath + requestOpts.path; @@ -108,7 +112,7 @@ export class BaseAPI { method: requestOpts.method, headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType || 'json', + responseType: requestOpts.responseType ?? 'json', }; } @@ -164,6 +168,21 @@ export interface RequestOpts { query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; + progressSubscriber?: Subscriber; +} + +export interface ResponseOpts { + withStatusCode?: boolean; +} + +export interface OperationOpts { + progressSubscriber?: Subscriber; + responseOpts?: ResponseOpts; +} + +export interface ResponseWithExtras { + data: T; + statusCode: number; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts index 3b3232c44dbb..ca4657ca5da5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; import { ApiResponse, Pet, @@ -63,7 +63,10 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet = ({ body }: AddPetRequest): Observable => { + addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest, opts?: Pick): Observable + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -82,13 +85,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { + deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -106,14 +113,18 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -135,14 +146,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -164,14 +179,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a single pet * Find pet by ID */ - getPetById = ({ petId }: GetPetByIdRequest): Observable => { + getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -182,13 +201,17 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet = ({ body }: UpdatePetRequest): Observable => { + updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -207,13 +230,17 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -235,13 +262,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -263,7 +294,8 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts index aac36206d606..824fd499b3fd 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { Order, } from '../models'; @@ -38,20 +38,27 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { + deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory = (): Observable<{ [key: string]: number; }> => { + getInventory(): Observable<{ [key: string]: number; }> + getInventory(opts?: Pick): Observable<{ [key: string]: number; }> + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; @@ -60,26 +67,34 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { + getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder = ({ body }: PlaceOrderRequest): Observable => { + placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -91,7 +106,8 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts index 1b3c07eea4f7..c13ab3ef3de8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { User, } from '../models'; @@ -56,7 +56,10 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser = ({ body }: CreateUserRequest): Observable => { + createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest, opts?: Pick): Observable + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -68,13 +71,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -86,13 +93,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -104,38 +115,50 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Delete user */ - deleteUser = ({ username }: DeleteUserRequest): Observable => { + deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName = ({ username }: GetUserByNameRequest): Observable => { + getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser = ({ username, password }: LoginUserRequest): Observable => { + loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -148,24 +171,32 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser = (): Observable => { + logoutUser(): Observable + logoutUser(opts?: Pick): Observable + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Updated user */ - updateUser = ({ username, body }: UpdateUserRequest): Observable => { + updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -178,7 +209,8 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/package.json b/samples/client/petstore/typescript-rxjs/builds/es6-target/package.json index c9c00ca9cf31..69a56b7d42b5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/package.json +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/package.json @@ -6,14 +6,14 @@ "main": "./dist/index.js", "typings": "./dist/index.d.ts", "scripts" : { - "build": "tsc --outDir dist/", + "build": "node_modules/.bin/tsc --outDir dist/", "prepare": "npm run build" }, "dependencies": { "rxjs": "^6.3.3" }, "devDependencies": { - "typescript": "^3.0.1" + "typescript": "^3.7" }, "publishConfig": { "registry": "https://skimdb.npmjs.com/registry" diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index e4c93e87e513..07959259950b 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -11,7 +11,7 @@ * Do not edit the class manually. */ -import { Observable, of } from 'rxjs'; +import { Observable, of, Subscriber } from 'rxjs'; import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax'; import { map, concatMap } from 'rxjs/operators'; @@ -30,11 +30,11 @@ export class Configuration { constructor(private configuration: ConfigurationParameters = {}) {} get basePath(): string { - return this.configuration.basePath || BASE_PATH; + return this.configuration.basePath ?? BASE_PATH; } get middleware(): Middleware[] { - return this.configuration.middleware || []; + return this.configuration.middleware ?? []; } get username(): string | undefined { @@ -84,15 +84,19 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request = (requestOpts: RequestOpts): Observable => - this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( + protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { - if (res.status >= 200 && res.status < 300) { - return res.response as T; + const { status, response } = res; + if (status >= 200 && status < 300) { + return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; } throw res; }) ); + } private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { let url = this.configuration.basePath + requestOpts.path; @@ -108,7 +112,7 @@ export class BaseAPI { method: requestOpts.method, headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType || 'json', + responseType: requestOpts.responseType ?? 'json', }; } @@ -164,6 +168,21 @@ export interface RequestOpts { query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; + progressSubscriber?: Subscriber; +} + +export interface ResponseOpts { + withStatusCode?: boolean; +} + +export interface OperationOpts { + progressSubscriber?: Subscriber; + responseOpts?: ResponseOpts; +} + +export interface ResponseWithExtras { + data: T; + statusCode: number; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts index 3b3232c44dbb..ca4657ca5da5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; import { ApiResponse, Pet, @@ -63,7 +63,10 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet = ({ body }: AddPetRequest): Observable => { + addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest, opts?: Pick): Observable + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -82,13 +85,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { + deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -106,14 +113,18 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -135,14 +146,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -164,14 +179,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a single pet * Find pet by ID */ - getPetById = ({ petId }: GetPetByIdRequest): Observable => { + getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -182,13 +201,17 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet = ({ body }: UpdatePetRequest): Observable => { + updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -207,13 +230,17 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -235,13 +262,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -263,7 +294,8 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts index aac36206d606..824fd499b3fd 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { Order, } from '../models'; @@ -38,20 +38,27 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { + deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory = (): Observable<{ [key: string]: number; }> => { + getInventory(): Observable<{ [key: string]: number; }> + getInventory(opts?: Pick): Observable<{ [key: string]: number; }> + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; @@ -60,26 +67,34 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { + getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder = ({ body }: PlaceOrderRequest): Observable => { + placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -91,7 +106,8 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts index 1b3c07eea4f7..c13ab3ef3de8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { User, } from '../models'; @@ -56,7 +56,10 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser = ({ body }: CreateUserRequest): Observable => { + createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest, opts?: Pick): Observable + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -68,13 +71,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -86,13 +93,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -104,38 +115,50 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Delete user */ - deleteUser = ({ username }: DeleteUserRequest): Observable => { + deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName = ({ username }: GetUserByNameRequest): Observable => { + getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser = ({ username, password }: LoginUserRequest): Observable => { + loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -148,24 +171,32 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser = (): Observable => { + logoutUser(): Observable + logoutUser(opts?: Pick): Observable + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Updated user */ - updateUser = ({ username, body }: UpdateUserRequest): Observable => { + updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -178,7 +209,8 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index e4c93e87e513..07959259950b 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -11,7 +11,7 @@ * Do not edit the class manually. */ -import { Observable, of } from 'rxjs'; +import { Observable, of, Subscriber } from 'rxjs'; import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax'; import { map, concatMap } from 'rxjs/operators'; @@ -30,11 +30,11 @@ export class Configuration { constructor(private configuration: ConfigurationParameters = {}) {} get basePath(): string { - return this.configuration.basePath || BASE_PATH; + return this.configuration.basePath ?? BASE_PATH; } get middleware(): Middleware[] { - return this.configuration.middleware || []; + return this.configuration.middleware ?? []; } get username(): string | undefined { @@ -84,15 +84,19 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request = (requestOpts: RequestOpts): Observable => - this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( + protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { - if (res.status >= 200 && res.status < 300) { - return res.response as T; + const { status, response } = res; + if (status >= 200 && status < 300) { + return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; } throw res; }) ); + } private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { let url = this.configuration.basePath + requestOpts.path; @@ -108,7 +112,7 @@ export class BaseAPI { method: requestOpts.method, headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType || 'json', + responseType: requestOpts.responseType ?? 'json', }; } @@ -164,6 +168,21 @@ export interface RequestOpts { query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; + progressSubscriber?: Subscriber; +} + +export interface ResponseOpts { + withStatusCode?: boolean; +} + +export interface OperationOpts { + progressSubscriber?: Subscriber; + responseOpts?: ResponseOpts; +} + +export interface ResponseWithExtras { + data: T; + statusCode: number; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts index 3b3232c44dbb..ca4657ca5da5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; import { ApiResponse, Pet, @@ -63,7 +63,10 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet = ({ body }: AddPetRequest): Observable => { + addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest, opts?: Pick): Observable + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -82,13 +85,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { + deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -106,14 +113,18 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -135,14 +146,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -164,14 +179,18 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a single pet * Find pet by ID */ - getPetById = ({ petId }: GetPetByIdRequest): Observable => { + getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -182,13 +201,17 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet = ({ body }: UpdatePetRequest): Observable => { + updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -207,13 +230,17 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -235,13 +262,17 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -263,7 +294,8 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts index aac36206d606..824fd499b3fd 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { Order, } from '../models'; @@ -38,20 +38,27 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { + deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory = (): Observable<{ [key: string]: number; }> => { + getInventory(): Observable<{ [key: string]: number; }> + getInventory(opts?: Pick): Observable<{ [key: string]: number; }> + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; @@ -60,26 +67,34 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { + getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder = ({ body }: PlaceOrderRequest): Observable => { + placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -91,7 +106,8 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts index 1b3c07eea4f7..c13ab3ef3de8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; import { User, } from '../models'; @@ -56,7 +56,10 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser = ({ body }: CreateUserRequest): Observable => { + createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest, opts?: Pick): Observable + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -68,13 +71,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -86,13 +93,17 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -104,38 +115,50 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Delete user */ - deleteUser = ({ username }: DeleteUserRequest): Observable => { + deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName = ({ username }: GetUserByNameRequest): Observable => { + getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser = ({ username, password }: LoginUserRequest): Observable => { + loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -148,24 +171,32 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser = (): Observable => { + logoutUser(): Observable + logoutUser(opts?: Pick): Observable + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; /** * This can only be done by the logged in user. * Updated user */ - updateUser = ({ username, body }: UpdateUserRequest): Observable => { + updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -178,7 +209,8 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - }); + progressSubscriber: opts?.progressSubscriber + }, opts?.responseOpts); }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/package.json b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/package.json index c9c00ca9cf31..69a56b7d42b5 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/package.json +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/package.json @@ -6,14 +6,14 @@ "main": "./dist/index.js", "typings": "./dist/index.d.ts", "scripts" : { - "build": "tsc --outDir dist/", + "build": "node_modules/.bin/tsc --outDir dist/", "prepare": "npm run build" }, "dependencies": { "rxjs": "^6.3.3" }, "devDependencies": { - "typescript": "^3.0.1" + "typescript": "^3.7" }, "publishConfig": { "registry": "https://skimdb.npmjs.com/registry" diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index e4c93e87e513..07959259950b 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -11,7 +11,7 @@ * Do not edit the class manually. */ -import { Observable, of } from 'rxjs'; +import { Observable, of, Subscriber } from 'rxjs'; import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax'; import { map, concatMap } from 'rxjs/operators'; @@ -30,11 +30,11 @@ export class Configuration { constructor(private configuration: ConfigurationParameters = {}) {} get basePath(): string { - return this.configuration.basePath || BASE_PATH; + return this.configuration.basePath ?? BASE_PATH; } get middleware(): Middleware[] { - return this.configuration.middleware || []; + return this.configuration.middleware ?? []; } get username(): string | undefined { @@ -84,15 +84,19 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request = (requestOpts: RequestOpts): Observable => - this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( + protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { - if (res.status >= 200 && res.status < 300) { - return res.response as T; + const { status, response } = res; + if (status >= 200 && status < 300) { + return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; } throw res; }) ); + } private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { let url = this.configuration.basePath + requestOpts.path; @@ -108,7 +112,7 @@ export class BaseAPI { method: requestOpts.method, headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType || 'json', + responseType: requestOpts.responseType ?? 'json', }; } @@ -164,6 +168,21 @@ export interface RequestOpts { query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; + progressSubscriber?: Subscriber; +} + +export interface ResponseOpts { + withStatusCode?: boolean; +} + +export interface OperationOpts { + progressSubscriber?: Subscriber; + responseOpts?: ResponseOpts; +} + +export interface ResponseWithExtras { + data: T; + statusCode: number; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); From 60e460ef6708bc9635fa0d9119631e8dd4f7ff2e Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:40:10 +0100 Subject: [PATCH 04/22] refactor(typescript-rxjs): change explicit undefined checks to shorthand return --- .../main/resources/typescript-rxjs/runtime.mustache | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index fc6c38176fb4..0fa36cfa3797 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -36,18 +36,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const apiKey = this.configuration.apiKey; - if (!apiKey) { - return undefined; - } - return typeof apiKey === 'string' ? () => apiKey : apiKey; + return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const accessToken = this.configuration.accessToken; - if (!accessToken) { - return undefined; - } - return typeof accessToken === 'string' ? () => accessToken : accessToken; + return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } From 45b4fb74f631554b74f04e5f4f0f409d882830ea Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:40:43 +0100 Subject: [PATCH 05/22] feat(typescript-rxjs): add missing progressSubscriber key when building RequestArgs --- .../src/main/resources/typescript-rxjs/runtime.mustache | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 0fa36cfa3797..d26cc088ed3c 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -96,6 +96,7 @@ export class BaseAPI { headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), responseType: requestOpts.responseType ?? 'json', + progressSubscriber: requestOpts.progressSubscriber, }; } From 92eb049d0629d1a38357e319a7cfa27a244793f0 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 13:41:13 +0100 Subject: [PATCH 06/22] feat(typescript-rxjs): regenerate samples --- .../typescript-rxjs/builds/default/runtime.ts | 11 +++-------- .../typescript-rxjs/builds/es6-target/runtime.ts | 11 +++-------- .../typescript-rxjs/builds/with-interfaces/runtime.ts | 11 +++-------- .../builds/with-npm-version/runtime.ts | 11 +++-------- 4 files changed, 12 insertions(+), 32 deletions(-) diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 07959259950b..630750fdd2e8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -47,18 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const apiKey = this.configuration.apiKey; - if (!apiKey) { - return undefined; - } - return typeof apiKey === 'string' ? () => apiKey : apiKey; + return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const accessToken = this.configuration.accessToken; - if (!accessToken) { - return undefined; - } - return typeof accessToken === 'string' ? () => accessToken : accessToken; + return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } @@ -113,6 +107,7 @@ export class BaseAPI { headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), responseType: requestOpts.responseType ?? 'json', + progressSubscriber: requestOpts.progressSubscriber, }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 07959259950b..630750fdd2e8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -47,18 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const apiKey = this.configuration.apiKey; - if (!apiKey) { - return undefined; - } - return typeof apiKey === 'string' ? () => apiKey : apiKey; + return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const accessToken = this.configuration.accessToken; - if (!accessToken) { - return undefined; - } - return typeof accessToken === 'string' ? () => accessToken : accessToken; + return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } @@ -113,6 +107,7 @@ export class BaseAPI { headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), responseType: requestOpts.responseType ?? 'json', + progressSubscriber: requestOpts.progressSubscriber, }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index 07959259950b..630750fdd2e8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -47,18 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const apiKey = this.configuration.apiKey; - if (!apiKey) { - return undefined; - } - return typeof apiKey === 'string' ? () => apiKey : apiKey; + return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const accessToken = this.configuration.accessToken; - if (!accessToken) { - return undefined; - } - return typeof accessToken === 'string' ? () => accessToken : accessToken; + return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } @@ -113,6 +107,7 @@ export class BaseAPI { headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), responseType: requestOpts.responseType ?? 'json', + progressSubscriber: requestOpts.progressSubscriber, }; } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 07959259950b..630750fdd2e8 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -47,18 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const apiKey = this.configuration.apiKey; - if (!apiKey) { - return undefined; - } - return typeof apiKey === 'string' ? () => apiKey : apiKey; + return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const accessToken = this.configuration.accessToken; - if (!accessToken) { - return undefined; - } - return typeof accessToken === 'string' ? () => accessToken : accessToken; + return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } @@ -113,6 +107,7 @@ export class BaseAPI { headers: requestOpts.headers, body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), responseType: requestOpts.responseType ?? 'json', + progressSubscriber: requestOpts.progressSubscriber, }; } From ce403126412fb9eed43eb3f4021c3b379e826e71 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 14:02:57 +0100 Subject: [PATCH 07/22] style(typescript-rxjs): remove whitespace, add colons --- .../src/main/resources/typescript-rxjs/apis.mustache | 8 ++++---- .../src/main/resources/typescript-rxjs/runtime.mustache | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache index 79a6bea5debc..7ee30e83addb 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache @@ -37,9 +37,9 @@ export class {{classname}} extends BaseAPI { * {{&summary}} {{/summary}} */ - {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: Pick): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> - {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}{{{returnType}}} | ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> { {{#hasParams}} {{#allParams}} @@ -207,9 +207,9 @@ export class {{classname}} extends BaseAPI { body: formData, {{/hasFormParams}} {{#isResponseFile}} - responseType: 'blob' + responseType: 'blob', {{/isResponseFile}} - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index d26cc088ed3c..7d1ed22b6360 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -67,7 +67,7 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts): Observable protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( From 70560959fb00d982e4a0a234df71af1faf60a099 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 14:05:23 +0100 Subject: [PATCH 08/22] feat(typescript-rxjs): regenerate samples --- .../builds/default/apis/PetApi.ts | 48 +++++++++---------- .../builds/default/apis/StoreApi.ts | 24 +++++----- .../builds/default/apis/UserApi.ts | 48 +++++++++---------- .../typescript-rxjs/builds/default/runtime.ts | 2 +- .../builds/es6-target/apis/PetApi.ts | 48 +++++++++---------- .../builds/es6-target/apis/StoreApi.ts | 24 +++++----- .../builds/es6-target/apis/UserApi.ts | 48 +++++++++---------- .../builds/es6-target/runtime.ts | 2 +- .../builds/with-interfaces/apis/PetApi.ts | 48 +++++++++---------- .../builds/with-interfaces/apis/StoreApi.ts | 24 +++++----- .../builds/with-interfaces/apis/UserApi.ts | 48 +++++++++---------- .../builds/with-interfaces/runtime.ts | 2 +- .../builds/with-npm-version/apis/PetApi.ts | 48 +++++++++---------- .../builds/with-npm-version/apis/StoreApi.ts | 24 +++++----- .../builds/with-npm-version/apis/UserApi.ts | 48 +++++++++---------- .../builds/with-npm-version/runtime.ts | 2 +- 16 files changed, 244 insertions(+), 244 deletions(-) diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts index ca4657ca5da5..95f8ee14d678 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts @@ -63,9 +63,9 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,16 +85,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +113,7 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -121,9 +121,9 @@ export class PetApi extends BaseAPI { * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +146,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -154,9 +154,9 @@ export class PetApi extends BaseAPI { * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +179,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -187,9 +187,9 @@ export class PetApi extends BaseAPI { * Returns a single pet * Find pet by ID */ - getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,16 +201,16 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,16 +230,16 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,16 +262,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +294,7 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts index 824fd499b3fd..99eca8b9aab0 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts @@ -38,16 +38,16 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -55,9 +55,9 @@ export class StoreApi extends BaseAPI { * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory(): Observable<{ [key: string]: number; }> + getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -67,7 +67,7 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -75,25 +75,25 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +106,7 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts index c13ab3ef3de8..906bd6fcd5c9 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts @@ -56,9 +56,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,16 +71,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,16 +93,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +115,7 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -123,41 +123,41 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Delete user */ - deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -171,21 +171,21 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser(): Observable + logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -193,9 +193,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Updated user */ - updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -209,7 +209,7 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 630750fdd2e8..effff9566a78 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -78,7 +78,7 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts): Observable protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts index ca4657ca5da5..95f8ee14d678 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts @@ -63,9 +63,9 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,16 +85,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +113,7 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -121,9 +121,9 @@ export class PetApi extends BaseAPI { * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +146,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -154,9 +154,9 @@ export class PetApi extends BaseAPI { * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +179,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -187,9 +187,9 @@ export class PetApi extends BaseAPI { * Returns a single pet * Find pet by ID */ - getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,16 +201,16 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,16 +230,16 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,16 +262,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +294,7 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts index 824fd499b3fd..99eca8b9aab0 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts @@ -38,16 +38,16 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -55,9 +55,9 @@ export class StoreApi extends BaseAPI { * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory(): Observable<{ [key: string]: number; }> + getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -67,7 +67,7 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -75,25 +75,25 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +106,7 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts index c13ab3ef3de8..906bd6fcd5c9 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts @@ -56,9 +56,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,16 +71,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,16 +93,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +115,7 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -123,41 +123,41 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Delete user */ - deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -171,21 +171,21 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser(): Observable + logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -193,9 +193,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Updated user */ - updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -209,7 +209,7 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 630750fdd2e8..effff9566a78 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -78,7 +78,7 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts): Observable protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts index ca4657ca5da5..95f8ee14d678 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts @@ -63,9 +63,9 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,16 +85,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +113,7 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -121,9 +121,9 @@ export class PetApi extends BaseAPI { * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +146,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -154,9 +154,9 @@ export class PetApi extends BaseAPI { * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +179,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -187,9 +187,9 @@ export class PetApi extends BaseAPI { * Returns a single pet * Find pet by ID */ - getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,16 +201,16 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,16 +230,16 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,16 +262,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +294,7 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts index 824fd499b3fd..99eca8b9aab0 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts @@ -38,16 +38,16 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -55,9 +55,9 @@ export class StoreApi extends BaseAPI { * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory(): Observable<{ [key: string]: number; }> + getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -67,7 +67,7 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -75,25 +75,25 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +106,7 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts index c13ab3ef3de8..906bd6fcd5c9 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts @@ -56,9 +56,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,16 +71,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,16 +93,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +115,7 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -123,41 +123,41 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Delete user */ - deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -171,21 +171,21 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser(): Observable + logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -193,9 +193,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Updated user */ - updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -209,7 +209,7 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index 630750fdd2e8..effff9566a78 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -78,7 +78,7 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts): Observable protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts index ca4657ca5da5..95f8ee14d678 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts @@ -63,9 +63,9 @@ export class PetApi extends BaseAPI { /** * Add a new pet to the store */ - addPet({ body }: AddPetRequest): Observable + addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,16 +85,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Deletes a pet */ - deletePet({ petId, apiKey }: DeletePetRequest): Observable + deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +113,7 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -121,9 +121,9 @@ export class PetApi extends BaseAPI { * Multiple status values can be provided with comma separated strings * Finds Pets by status */ - findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> + findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +146,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -154,9 +154,9 @@ export class PetApi extends BaseAPI { * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * Finds Pets by tags */ - findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> + findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +179,7 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -187,9 +187,9 @@ export class PetApi extends BaseAPI { * Returns a single pet * Find pet by ID */ - getPetById({ petId }: GetPetByIdRequest): Observable + getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,16 +201,16 @@ export class PetApi extends BaseAPI { path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Update an existing pet */ - updatePet({ body }: UpdatePetRequest): Observable + updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,16 +230,16 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Updates a pet in the store with form data */ - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,16 +262,16 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * uploads an image */ - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +294,7 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts index 824fd499b3fd..99eca8b9aab0 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts @@ -38,16 +38,16 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors * Delete purchase order by ID */ - deleteOrder({ orderId }: DeleteOrderRequest): Observable + deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -55,9 +55,9 @@ export class StoreApi extends BaseAPI { * Returns a map of status codes to quantities * Returns pet inventories by status */ - getInventory(): Observable<{ [key: string]: number; }> + getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -67,7 +67,7 @@ export class StoreApi extends BaseAPI { path: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -75,25 +75,25 @@ export class StoreApi extends BaseAPI { * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions * Find purchase order by ID */ - getOrderById({ orderId }: GetOrderByIdRequest): Observable + getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Place an order for a pet */ - placeOrder({ body }: PlaceOrderRequest): Observable + placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +106,7 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts index c13ab3ef3de8..906bd6fcd5c9 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts @@ -56,9 +56,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Create user */ - createUser({ body }: CreateUserRequest): Observable + createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,16 +71,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,16 +93,16 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Creates list of users with given input array */ - createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable + createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +115,7 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -123,41 +123,41 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Delete user */ - deleteUser({ username }: DeleteUserRequest): Observable + deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Get user by user name */ - getUserByName({ username }: GetUserByNameRequest): Observable + getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs user into the system */ - loginUser({ username, password }: LoginUserRequest): Observable + loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -171,21 +171,21 @@ export class UserApi extends BaseAPI { path: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; /** * Logs out current logged in user session */ - logoutUser(): Observable + logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ path: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -193,9 +193,9 @@ export class UserApi extends BaseAPI { * This can only be done by the logged in user. * Updated user */ - updateUser({ username, body }: UpdateUserRequest): Observable + updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -209,7 +209,7 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber + progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 630750fdd2e8..effff9566a78 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -78,7 +78,7 @@ export class BaseAPI { withPostMiddleware = (postMiddlewares: Array) => this.withMiddleware(postMiddlewares.map((post) => ({ post }))); - protected request(requestOpts: RequestOpts): Observable + protected request(requestOpts: RequestOpts): Observable protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( From 673d67ca85b65b4dd524db092283ebff825a8676 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 14:43:19 +0100 Subject: [PATCH 09/22] refactor(typescript-rxjs): destructure configuration in BaseApi --- .../src/main/resources/typescript-rxjs/runtime.mustache | 4 ++-- .../client/petstore/typescript-rxjs/builds/default/runtime.ts | 4 ++-- .../petstore/typescript-rxjs/builds/es6-target/runtime.ts | 4 ++-- .../typescript-rxjs/builds/with-interfaces/runtime.ts | 4 ++-- .../typescript-rxjs/builds/with-npm-version/runtime.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 7d1ed22b6360..96550b11ed8a 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -35,12 +35,12 @@ export class Configuration { } get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; + const { apiKey } = this.configuration; return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; + const { accessToken } = this.configuration; return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index effff9566a78..9e734cdeca60 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -46,12 +46,12 @@ export class Configuration { } get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; + const { apiKey } = this.configuration; return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; + const { accessToken } = this.configuration; return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index effff9566a78..9e734cdeca60 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -46,12 +46,12 @@ export class Configuration { } get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; + const { apiKey } = this.configuration; return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; + const { accessToken } = this.configuration; return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index effff9566a78..9e734cdeca60 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -46,12 +46,12 @@ export class Configuration { } get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; + const { apiKey } = this.configuration; return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; + const { accessToken } = this.configuration; return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index effff9566a78..9e734cdeca60 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -46,12 +46,12 @@ export class Configuration { } get apiKey(): ((name: string) => string) | undefined { - const apiKey = this.configuration.apiKey; + const { apiKey } = this.configuration; return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { - const accessToken = this.configuration.accessToken; + const { accessToken } = this.configuration; return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); } } From 9502f2fb453fe32ab26b7559f300f103a2ed8d22 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 27 Feb 2020 17:30:48 +0100 Subject: [PATCH 10/22] fix(typescript-rxjs): returning empty string for apiKey and accessToken --- .../src/main/resources/typescript-rxjs/runtime.mustache | 4 ++-- .../client/petstore/typescript-rxjs/builds/default/runtime.ts | 4 ++-- .../petstore/typescript-rxjs/builds/es6-target/runtime.ts | 4 ++-- .../typescript-rxjs/builds/with-interfaces/runtime.ts | 4 ++-- .../typescript-rxjs/builds/with-npm-version/runtime.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 96550b11ed8a..9df504671d9c 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -36,12 +36,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const { apiKey } = this.configuration; - return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); + return apiKey ? (typeof apiKey === 'string' ? () => apiKey : apiKey) : undefined; } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const { accessToken } = this.configuration; - return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); + return accessToken ? (typeof accessToken === 'string' ? () => accessToken : accessToken) : undefined; } } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 9e734cdeca60..472396008f19 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -47,12 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const { apiKey } = this.configuration; - return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); + return apiKey ? (typeof apiKey === 'string' ? () => apiKey : apiKey) : undefined; } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const { accessToken } = this.configuration; - return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); + return accessToken ? (typeof accessToken === 'string' ? () => accessToken : accessToken) : undefined; } } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 9e734cdeca60..472396008f19 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -47,12 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const { apiKey } = this.configuration; - return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); + return apiKey ? (typeof apiKey === 'string' ? () => apiKey : apiKey) : undefined; } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const { accessToken } = this.configuration; - return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); + return accessToken ? (typeof accessToken === 'string' ? () => accessToken : accessToken) : undefined; } } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index 9e734cdeca60..472396008f19 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -47,12 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const { apiKey } = this.configuration; - return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); + return apiKey ? (typeof apiKey === 'string' ? () => apiKey : apiKey) : undefined; } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const { accessToken } = this.configuration; - return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); + return accessToken ? (typeof accessToken === 'string' ? () => accessToken : accessToken) : undefined; } } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 9e734cdeca60..472396008f19 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -47,12 +47,12 @@ export class Configuration { get apiKey(): ((name: string) => string) | undefined { const { apiKey } = this.configuration; - return apiKey && (typeof apiKey === 'function' ? apiKey : () => apiKey); + return apiKey ? (typeof apiKey === 'string' ? () => apiKey : apiKey) : undefined; } get accessToken(): ((name: string, scopes?: string[]) => string) | undefined { const { accessToken } = this.configuration; - return accessToken && (typeof accessToken === 'function' ? accessToken : () => accessToken); + return accessToken ? (typeof accessToken === 'string' ? () => accessToken : accessToken) : undefined; } } From a5c5a8677081cce3233749bd5ebf76d151a49ef0 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 5 Mar 2020 09:58:00 +0100 Subject: [PATCH 11/22] feat(typescript-rxjs): replace withStatusCode option with response = raw option, reuse rxjs AjaxRequest and AjaxResponse types --- .../resources/typescript-rxjs/apis.mustache | 8 ++-- .../typescript-rxjs/runtime.mustache | 43 +++++++++---------- 2 files changed, 24 insertions(+), 27 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache index 7ee30e83addb..a2befbc6a9a3 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache @@ -1,7 +1,7 @@ // tslint:disable {{>licenseInfo}} import { Observable } from 'rxjs'; -import { BaseAPI{{#hasHttpHeaders}}, HttpHeaders{{/hasHttpHeaders}}{{#hasQueryParams}}, HttpQuery{{/hasQueryParams}}{{#hasRequiredParams}}, throwIfNullOrUndefined{{/hasRequiredParams}}{{#hasPathParams}}, encodeURI{{/hasPathParams}}{{#hasListContainers}}, COLLECTION_FORMATS{{/hasListContainers}}, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI{{#hasHttpHeaders}}, HttpHeaders{{/hasHttpHeaders}}{{#hasQueryParams}}, HttpQuery{{/hasQueryParams}}{{#hasRequiredParams}}, throwIfNullOrUndefined{{/hasRequiredParams}}{{#hasPathParams}}, encodeURI{{/hasPathParams}}{{#hasListContainers}}, COLLECTION_FORMATS{{/hasListContainers}}, OperationOpts, RawAjaxResponse } from '../runtime'; {{#imports.0}} import { {{#imports}} @@ -39,8 +39,8 @@ export class {{classname}} extends BaseAPI { */ {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: Pick): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> - {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> - {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}{{{returnType}}} | ResponseWithExtras<{{{returnType}}}>{{/returnType}}{{^returnType}}void | ResponseWithExtras{{/returnType}}> { + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}RawAjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | RawAjaxResponse{{/returnType}}> + {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}{{{returnType}}} | RawAjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | RawAjaxResponse{{/returnType}}> { {{#hasParams}} {{#allParams}} {{#required}} @@ -180,7 +180,7 @@ export class {{classname}} extends BaseAPI { {{/hasFormParams}} return this.request<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}>({ - path: '{{{path}}}'{{#pathParams}}.replace({{=<% %>=}}'{<%baseName%>}'<%={{ }}=%>, encodeURI({{> paramNamePartial}})){{/pathParams}}, + url: '{{{path}}}'{{#pathParams}}.replace({{=<% %>=}}'{<%baseName%>}'<%={{ }}=%>, encodeURI({{> paramNamePartial}})){{/pathParams}}, method: '{{httpMethod}}', {{#hasHttpHeaders}} headers, diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 9df504671d9c..ba0b958cb5e0 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -68,35 +68,32 @@ export class BaseAPI { this.withMiddleware(postMiddlewares.map((post) => ({ post }))); protected request(requestOpts: RequestOpts): Observable - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { const { status, response } = res; if (status >= 200 && status < 300) { - return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; + return responseOpts?.respone === 'raw' ? res : response; } throw res; }) ); } - private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { - let url = this.configuration.basePath + requestOpts.path; - if (requestOpts.query !== undefined && Object.keys(requestOpts.query).length !== 0) { - // only add the queryString to the URL if there are query parameters. - // this is done to avoid urls ending with a '?' character which buggy webservers - // do not handle correctly sometimes. - url += '?' + queryString(requestOpts.query); - } + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + // only add the queryString to the URL if there are query parameters. + // this is done to avoid urls ending with a '?' character which buggy webservers + // do not handle correctly sometimes. + const url = `${this.configuration.basePath}${baseUrl}${query && Object.keys(query).length ? `?${queryString(query)}`: ''}`; return { url, - method: requestOpts.method, - headers: requestOpts.headers, - body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType ?? 'json', - progressSubscriber: requestOpts.progressSubscriber, + method, + headers, + body: body instanceof FormData ? body : JSON.stringify(body), + responseType: responseType ?? 'json', + progressSubscriber, }; } @@ -145,18 +142,18 @@ export type HttpHeaders = { [key: string]: string }; export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array }>; // partial is needed for strict mode export type HttpBody = Json | FormData; -export interface RequestOpts { - path: string; +export interface RequestOpts extends AjaxRequest { + query?: HttpQuery; // additional prop + // the following props have improved types over AjaxRequest method: HttpMethod; headers?: HttpHeaders; - query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; progressSubscriber?: Subscriber; } export interface ResponseOpts { - withStatusCode?: boolean; + respone?: 'raw'; } export interface OperationOpts { @@ -164,9 +161,9 @@ export interface OperationOpts { responseOpts?: ResponseOpts; } -export interface ResponseWithExtras { - data: T; - statusCode: number; +// AjaxResponse with typed response +export interface RawAjaxResponse extends AjaxResponse { + response: T; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); From dfdb999e687ea4d5e16607b6f4b4a3c7cf8eb647 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Thu, 5 Mar 2020 09:58:52 +0100 Subject: [PATCH 12/22] feat(typescript-rxjs): regenerate samples --- .../builds/default/apis/PetApi.ts | 50 +++++++++---------- .../builds/default/apis/StoreApi.ts | 26 +++++----- .../builds/default/apis/UserApi.ts | 50 +++++++++---------- .../typescript-rxjs/builds/default/runtime.ts | 43 ++++++++-------- .../builds/es6-target/apis/PetApi.ts | 50 +++++++++---------- .../builds/es6-target/apis/StoreApi.ts | 26 +++++----- .../builds/es6-target/apis/UserApi.ts | 50 +++++++++---------- .../builds/es6-target/runtime.ts | 43 ++++++++-------- .../builds/with-interfaces/apis/PetApi.ts | 50 +++++++++---------- .../builds/with-interfaces/apis/StoreApi.ts | 26 +++++----- .../builds/with-interfaces/apis/UserApi.ts | 50 +++++++++---------- .../builds/with-interfaces/runtime.ts | 43 ++++++++-------- .../builds/with-npm-version/apis/PetApi.ts | 50 +++++++++---------- .../builds/with-npm-version/apis/StoreApi.ts | 26 +++++----- .../builds/with-npm-version/apis/UserApi.ts | 50 +++++++++---------- .../builds/with-npm-version/runtime.ts | 43 ++++++++-------- 16 files changed, 332 insertions(+), 344 deletions(-) diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts index 95f8ee14d678..ff7849b15007 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, RawAjaxResponse } from '../runtime'; import { ApiResponse, Pet, @@ -65,8 +65,8 @@ export class PetApi extends BaseAPI { */ addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -81,7 +81,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'POST', headers, body: body, @@ -94,8 +94,8 @@ export class PetApi extends BaseAPI { */ deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -110,7 +110,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, progressSubscriber: opts?.progressSubscriber, @@ -123,8 +123,8 @@ export class PetApi extends BaseAPI { */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -142,7 +142,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByStatus', + url: '/pet/findByStatus', method: 'GET', headers, query, @@ -156,8 +156,8 @@ export class PetApi extends BaseAPI { */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -175,7 +175,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByTags', + url: '/pet/findByTags', method: 'GET', headers, query, @@ -189,8 +189,8 @@ export class PetApi extends BaseAPI { */ getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -198,7 +198,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -210,8 +210,8 @@ export class PetApi extends BaseAPI { */ updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -226,7 +226,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'PUT', headers, body: body, @@ -239,8 +239,8 @@ export class PetApi extends BaseAPI { */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -258,7 +258,7 @@ export class PetApi extends BaseAPI { if (status !== undefined) { formData.append('status', status as any); } return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, @@ -271,8 +271,8 @@ export class PetApi extends BaseAPI { */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -290,7 +290,7 @@ export class PetApi extends BaseAPI { if (file !== undefined) { formData.append('file', file as any); } return this.request({ - path: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts index 99eca8b9aab0..11328ecd2507 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { Order, } from '../models'; @@ -40,12 +40,12 @@ export class StoreApi extends BaseAPI { */ deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -57,14 +57,14 @@ export class StoreApi extends BaseAPI { */ getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> - getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; return this.request<{ [key: string]: number; }>({ - path: '/store/inventory', + url: '/store/inventory', method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -77,12 +77,12 @@ export class StoreApi extends BaseAPI { */ getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -93,8 +93,8 @@ export class StoreApi extends BaseAPI { */ placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -102,7 +102,7 @@ export class StoreApi extends BaseAPI { }; return this.request({ - path: '/store/order', + url: '/store/order', method: 'POST', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts index 906bd6fcd5c9..1d0d07d4e202 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { User, } from '../models'; @@ -58,8 +58,8 @@ export class UserApi extends BaseAPI { */ createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -67,7 +67,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user', + url: '/user', method: 'POST', headers, body: body, @@ -80,8 +80,8 @@ export class UserApi extends BaseAPI { */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -89,7 +89,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithArray', + url: '/user/createWithArray', method: 'POST', headers, body: body, @@ -102,8 +102,8 @@ export class UserApi extends BaseAPI { */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -111,7 +111,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithList', + url: '/user/createWithList', method: 'POST', headers, body: body, @@ -125,12 +125,12 @@ export class UserApi extends BaseAPI { */ deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -141,12 +141,12 @@ export class UserApi extends BaseAPI { */ getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -157,8 +157,8 @@ export class UserApi extends BaseAPI { */ loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -168,7 +168,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/login', + url: '/user/login', method: 'GET', query, progressSubscriber: opts?.progressSubscriber, @@ -180,10 +180,10 @@ export class UserApi extends BaseAPI { */ logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> - logoutUser(opts?: OperationOpts): Observable> { + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ - path: '/user/logout', + url: '/user/logout', method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -195,8 +195,8 @@ export class UserApi extends BaseAPI { */ updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -205,7 +205,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'PUT', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 472396008f19..8df667fda24d 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -79,35 +79,32 @@ export class BaseAPI { this.withMiddleware(postMiddlewares.map((post) => ({ post }))); protected request(requestOpts: RequestOpts): Observable - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { const { status, response } = res; if (status >= 200 && status < 300) { - return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; + return responseOpts?.respone === 'raw' ? res : response; } throw res; }) ); } - private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { - let url = this.configuration.basePath + requestOpts.path; - if (requestOpts.query !== undefined && Object.keys(requestOpts.query).length !== 0) { - // only add the queryString to the URL if there are query parameters. - // this is done to avoid urls ending with a '?' character which buggy webservers - // do not handle correctly sometimes. - url += '?' + queryString(requestOpts.query); - } + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + // only add the queryString to the URL if there are query parameters. + // this is done to avoid urls ending with a '?' character which buggy webservers + // do not handle correctly sometimes. + const url = `${this.configuration.basePath}${baseUrl}${query && Object.keys(query).length ? `?${queryString(query)}`: ''}`; return { url, - method: requestOpts.method, - headers: requestOpts.headers, - body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType ?? 'json', - progressSubscriber: requestOpts.progressSubscriber, + method, + headers, + body: body instanceof FormData ? body : JSON.stringify(body), + responseType: responseType ?? 'json', + progressSubscriber, }; } @@ -156,18 +153,18 @@ export type HttpHeaders = { [key: string]: string }; export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array }>; // partial is needed for strict mode export type HttpBody = Json | FormData; -export interface RequestOpts { - path: string; +export interface RequestOpts extends AjaxRequest { + query?: HttpQuery; // additional prop + // the following props have improved types over AjaxRequest method: HttpMethod; headers?: HttpHeaders; - query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; progressSubscriber?: Subscriber; } export interface ResponseOpts { - withStatusCode?: boolean; + respone?: 'raw'; } export interface OperationOpts { @@ -175,9 +172,9 @@ export interface OperationOpts { responseOpts?: ResponseOpts; } -export interface ResponseWithExtras { - data: T; - statusCode: number; +// AjaxResponse with typed response +export interface RawAjaxResponse extends AjaxResponse { + response: T; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts index 95f8ee14d678..ff7849b15007 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, RawAjaxResponse } from '../runtime'; import { ApiResponse, Pet, @@ -65,8 +65,8 @@ export class PetApi extends BaseAPI { */ addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -81,7 +81,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'POST', headers, body: body, @@ -94,8 +94,8 @@ export class PetApi extends BaseAPI { */ deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -110,7 +110,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, progressSubscriber: opts?.progressSubscriber, @@ -123,8 +123,8 @@ export class PetApi extends BaseAPI { */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -142,7 +142,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByStatus', + url: '/pet/findByStatus', method: 'GET', headers, query, @@ -156,8 +156,8 @@ export class PetApi extends BaseAPI { */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -175,7 +175,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByTags', + url: '/pet/findByTags', method: 'GET', headers, query, @@ -189,8 +189,8 @@ export class PetApi extends BaseAPI { */ getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -198,7 +198,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -210,8 +210,8 @@ export class PetApi extends BaseAPI { */ updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -226,7 +226,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'PUT', headers, body: body, @@ -239,8 +239,8 @@ export class PetApi extends BaseAPI { */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -258,7 +258,7 @@ export class PetApi extends BaseAPI { if (status !== undefined) { formData.append('status', status as any); } return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, @@ -271,8 +271,8 @@ export class PetApi extends BaseAPI { */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -290,7 +290,7 @@ export class PetApi extends BaseAPI { if (file !== undefined) { formData.append('file', file as any); } return this.request({ - path: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts index 99eca8b9aab0..11328ecd2507 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { Order, } from '../models'; @@ -40,12 +40,12 @@ export class StoreApi extends BaseAPI { */ deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -57,14 +57,14 @@ export class StoreApi extends BaseAPI { */ getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> - getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; return this.request<{ [key: string]: number; }>({ - path: '/store/inventory', + url: '/store/inventory', method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -77,12 +77,12 @@ export class StoreApi extends BaseAPI { */ getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -93,8 +93,8 @@ export class StoreApi extends BaseAPI { */ placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -102,7 +102,7 @@ export class StoreApi extends BaseAPI { }; return this.request({ - path: '/store/order', + url: '/store/order', method: 'POST', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts index 906bd6fcd5c9..1d0d07d4e202 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { User, } from '../models'; @@ -58,8 +58,8 @@ export class UserApi extends BaseAPI { */ createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -67,7 +67,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user', + url: '/user', method: 'POST', headers, body: body, @@ -80,8 +80,8 @@ export class UserApi extends BaseAPI { */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -89,7 +89,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithArray', + url: '/user/createWithArray', method: 'POST', headers, body: body, @@ -102,8 +102,8 @@ export class UserApi extends BaseAPI { */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -111,7 +111,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithList', + url: '/user/createWithList', method: 'POST', headers, body: body, @@ -125,12 +125,12 @@ export class UserApi extends BaseAPI { */ deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -141,12 +141,12 @@ export class UserApi extends BaseAPI { */ getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -157,8 +157,8 @@ export class UserApi extends BaseAPI { */ loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -168,7 +168,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/login', + url: '/user/login', method: 'GET', query, progressSubscriber: opts?.progressSubscriber, @@ -180,10 +180,10 @@ export class UserApi extends BaseAPI { */ logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> - logoutUser(opts?: OperationOpts): Observable> { + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ - path: '/user/logout', + url: '/user/logout', method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -195,8 +195,8 @@ export class UserApi extends BaseAPI { */ updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -205,7 +205,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'PUT', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 472396008f19..8df667fda24d 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -79,35 +79,32 @@ export class BaseAPI { this.withMiddleware(postMiddlewares.map((post) => ({ post }))); protected request(requestOpts: RequestOpts): Observable - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { const { status, response } = res; if (status >= 200 && status < 300) { - return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; + return responseOpts?.respone === 'raw' ? res : response; } throw res; }) ); } - private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { - let url = this.configuration.basePath + requestOpts.path; - if (requestOpts.query !== undefined && Object.keys(requestOpts.query).length !== 0) { - // only add the queryString to the URL if there are query parameters. - // this is done to avoid urls ending with a '?' character which buggy webservers - // do not handle correctly sometimes. - url += '?' + queryString(requestOpts.query); - } + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + // only add the queryString to the URL if there are query parameters. + // this is done to avoid urls ending with a '?' character which buggy webservers + // do not handle correctly sometimes. + const url = `${this.configuration.basePath}${baseUrl}${query && Object.keys(query).length ? `?${queryString(query)}`: ''}`; return { url, - method: requestOpts.method, - headers: requestOpts.headers, - body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType ?? 'json', - progressSubscriber: requestOpts.progressSubscriber, + method, + headers, + body: body instanceof FormData ? body : JSON.stringify(body), + responseType: responseType ?? 'json', + progressSubscriber, }; } @@ -156,18 +153,18 @@ export type HttpHeaders = { [key: string]: string }; export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array }>; // partial is needed for strict mode export type HttpBody = Json | FormData; -export interface RequestOpts { - path: string; +export interface RequestOpts extends AjaxRequest { + query?: HttpQuery; // additional prop + // the following props have improved types over AjaxRequest method: HttpMethod; headers?: HttpHeaders; - query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; progressSubscriber?: Subscriber; } export interface ResponseOpts { - withStatusCode?: boolean; + respone?: 'raw'; } export interface OperationOpts { @@ -175,9 +172,9 @@ export interface OperationOpts { responseOpts?: ResponseOpts; } -export interface ResponseWithExtras { - data: T; - statusCode: number; +// AjaxResponse with typed response +export interface RawAjaxResponse extends AjaxResponse { + response: T; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts index 95f8ee14d678..ff7849b15007 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, RawAjaxResponse } from '../runtime'; import { ApiResponse, Pet, @@ -65,8 +65,8 @@ export class PetApi extends BaseAPI { */ addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -81,7 +81,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'POST', headers, body: body, @@ -94,8 +94,8 @@ export class PetApi extends BaseAPI { */ deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -110,7 +110,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, progressSubscriber: opts?.progressSubscriber, @@ -123,8 +123,8 @@ export class PetApi extends BaseAPI { */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -142,7 +142,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByStatus', + url: '/pet/findByStatus', method: 'GET', headers, query, @@ -156,8 +156,8 @@ export class PetApi extends BaseAPI { */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -175,7 +175,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByTags', + url: '/pet/findByTags', method: 'GET', headers, query, @@ -189,8 +189,8 @@ export class PetApi extends BaseAPI { */ getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -198,7 +198,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -210,8 +210,8 @@ export class PetApi extends BaseAPI { */ updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -226,7 +226,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'PUT', headers, body: body, @@ -239,8 +239,8 @@ export class PetApi extends BaseAPI { */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -258,7 +258,7 @@ export class PetApi extends BaseAPI { if (status !== undefined) { formData.append('status', status as any); } return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, @@ -271,8 +271,8 @@ export class PetApi extends BaseAPI { */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -290,7 +290,7 @@ export class PetApi extends BaseAPI { if (file !== undefined) { formData.append('file', file as any); } return this.request({ - path: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts index 99eca8b9aab0..11328ecd2507 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { Order, } from '../models'; @@ -40,12 +40,12 @@ export class StoreApi extends BaseAPI { */ deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -57,14 +57,14 @@ export class StoreApi extends BaseAPI { */ getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> - getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; return this.request<{ [key: string]: number; }>({ - path: '/store/inventory', + url: '/store/inventory', method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -77,12 +77,12 @@ export class StoreApi extends BaseAPI { */ getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -93,8 +93,8 @@ export class StoreApi extends BaseAPI { */ placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -102,7 +102,7 @@ export class StoreApi extends BaseAPI { }; return this.request({ - path: '/store/order', + url: '/store/order', method: 'POST', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts index 906bd6fcd5c9..1d0d07d4e202 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { User, } from '../models'; @@ -58,8 +58,8 @@ export class UserApi extends BaseAPI { */ createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -67,7 +67,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user', + url: '/user', method: 'POST', headers, body: body, @@ -80,8 +80,8 @@ export class UserApi extends BaseAPI { */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -89,7 +89,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithArray', + url: '/user/createWithArray', method: 'POST', headers, body: body, @@ -102,8 +102,8 @@ export class UserApi extends BaseAPI { */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -111,7 +111,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithList', + url: '/user/createWithList', method: 'POST', headers, body: body, @@ -125,12 +125,12 @@ export class UserApi extends BaseAPI { */ deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -141,12 +141,12 @@ export class UserApi extends BaseAPI { */ getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -157,8 +157,8 @@ export class UserApi extends BaseAPI { */ loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -168,7 +168,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/login', + url: '/user/login', method: 'GET', query, progressSubscriber: opts?.progressSubscriber, @@ -180,10 +180,10 @@ export class UserApi extends BaseAPI { */ logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> - logoutUser(opts?: OperationOpts): Observable> { + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ - path: '/user/logout', + url: '/user/logout', method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -195,8 +195,8 @@ export class UserApi extends BaseAPI { */ updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -205,7 +205,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'PUT', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index 472396008f19..8df667fda24d 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -79,35 +79,32 @@ export class BaseAPI { this.withMiddleware(postMiddlewares.map((post) => ({ post }))); protected request(requestOpts: RequestOpts): Observable - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { const { status, response } = res; if (status >= 200 && status < 300) { - return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; + return responseOpts?.respone === 'raw' ? res : response; } throw res; }) ); } - private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { - let url = this.configuration.basePath + requestOpts.path; - if (requestOpts.query !== undefined && Object.keys(requestOpts.query).length !== 0) { - // only add the queryString to the URL if there are query parameters. - // this is done to avoid urls ending with a '?' character which buggy webservers - // do not handle correctly sometimes. - url += '?' + queryString(requestOpts.query); - } + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + // only add the queryString to the URL if there are query parameters. + // this is done to avoid urls ending with a '?' character which buggy webservers + // do not handle correctly sometimes. + const url = `${this.configuration.basePath}${baseUrl}${query && Object.keys(query).length ? `?${queryString(query)}`: ''}`; return { url, - method: requestOpts.method, - headers: requestOpts.headers, - body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType ?? 'json', - progressSubscriber: requestOpts.progressSubscriber, + method, + headers, + body: body instanceof FormData ? body : JSON.stringify(body), + responseType: responseType ?? 'json', + progressSubscriber, }; } @@ -156,18 +153,18 @@ export type HttpHeaders = { [key: string]: string }; export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array }>; // partial is needed for strict mode export type HttpBody = Json | FormData; -export interface RequestOpts { - path: string; +export interface RequestOpts extends AjaxRequest { + query?: HttpQuery; // additional prop + // the following props have improved types over AjaxRequest method: HttpMethod; headers?: HttpHeaders; - query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; progressSubscriber?: Subscriber; } export interface ResponseOpts { - withStatusCode?: boolean; + respone?: 'raw'; } export interface OperationOpts { @@ -175,9 +172,9 @@ export interface OperationOpts { responseOpts?: ResponseOpts; } -export interface ResponseWithExtras { - data: T; - statusCode: number; +// AjaxResponse with typed response +export interface RawAjaxResponse extends AjaxResponse { + response: T; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts index 95f8ee14d678..ff7849b15007 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, RawAjaxResponse } from '../runtime'; import { ApiResponse, Pet, @@ -65,8 +65,8 @@ export class PetApi extends BaseAPI { */ addPet({ body }: AddPetRequest): Observable addPet({ body }: AddPetRequest, opts?: Pick): Observable - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> - addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> + addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); const headers: HttpHeaders = { @@ -81,7 +81,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'POST', headers, body: body, @@ -94,8 +94,8 @@ export class PetApi extends BaseAPI { */ deletePet({ petId, apiKey }: DeletePetRequest): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> - deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> + deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); const headers: HttpHeaders = { @@ -110,7 +110,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, progressSubscriber: opts?.progressSubscriber, @@ -123,8 +123,8 @@ export class PetApi extends BaseAPI { */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> + findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); const headers: HttpHeaders = { @@ -142,7 +142,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByStatus', + url: '/pet/findByStatus', method: 'GET', headers, query, @@ -156,8 +156,8 @@ export class PetApi extends BaseAPI { */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | ResponseWithExtras>> { + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> + findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); const headers: HttpHeaders = { @@ -175,7 +175,7 @@ export class PetApi extends BaseAPI { }; return this.request>({ - path: '/pet/findByTags', + url: '/pet/findByTags', method: 'GET', headers, query, @@ -189,8 +189,8 @@ export class PetApi extends BaseAPI { */ getPetById({ petId }: GetPetByIdRequest): Observable getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> - getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> + getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); const headers: HttpHeaders = { @@ -198,7 +198,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -210,8 +210,8 @@ export class PetApi extends BaseAPI { */ updatePet({ body }: UpdatePetRequest): Observable updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> - updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> + updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); const headers: HttpHeaders = { @@ -226,7 +226,7 @@ export class PetApi extends BaseAPI { }; return this.request({ - path: '/pet', + url: '/pet', method: 'PUT', headers, body: body, @@ -239,8 +239,8 @@ export class PetApi extends BaseAPI { */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> + updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); const headers: HttpHeaders = { @@ -258,7 +258,7 @@ export class PetApi extends BaseAPI { if (status !== undefined) { formData.append('status', status as any); } return this.request({ - path: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, @@ -271,8 +271,8 @@ export class PetApi extends BaseAPI { */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> + uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); const headers: HttpHeaders = { @@ -290,7 +290,7 @@ export class PetApi extends BaseAPI { if (file !== undefined) { formData.append('file', file as any); } return this.request({ - path: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), + url: '/pet/{petId}/uploadImage'.replace('{petId}', encodeURI(petId)), method: 'POST', headers, body: formData, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts index 99eca8b9aab0..11328ecd2507 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { Order, } from '../models'; @@ -40,12 +40,12 @@ export class StoreApi extends BaseAPI { */ deleteOrder({ orderId }: DeleteOrderRequest): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> - deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> + deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -57,14 +57,14 @@ export class StoreApi extends BaseAPI { */ getInventory(): Observable<{ [key: string]: number; }> getInventory(opts?: Pick): Observable<{ [key: string]: number; }> - getInventory(opts?: OperationOpts): Observable> - getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | ResponseWithExtras<{ [key: string]: number; }>> { + getInventory(opts?: OperationOpts): Observable> + getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication }; return this.request<{ [key: string]: number; }>({ - path: '/store/inventory', + url: '/store/inventory', method: 'GET', headers, progressSubscriber: opts?.progressSubscriber, @@ -77,12 +77,12 @@ export class StoreApi extends BaseAPI { */ getOrderById({ orderId }: GetOrderByIdRequest): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> - getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> + getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), + url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -93,8 +93,8 @@ export class StoreApi extends BaseAPI { */ placeOrder({ body }: PlaceOrderRequest): Observable placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> - placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> + placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); const headers: HttpHeaders = { @@ -102,7 +102,7 @@ export class StoreApi extends BaseAPI { }; return this.request({ - path: '/store/order', + url: '/store/order', method: 'POST', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts index 906bd6fcd5c9..1d0d07d4e202 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts @@ -12,7 +12,7 @@ */ import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, ResponseWithExtras } from '../runtime'; +import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, OperationOpts, RawAjaxResponse } from '../runtime'; import { User, } from '../models'; @@ -58,8 +58,8 @@ export class UserApi extends BaseAPI { */ createUser({ body }: CreateUserRequest): Observable createUser({ body }: CreateUserRequest, opts?: Pick): Observable - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> - createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> + createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); const headers: HttpHeaders = { @@ -67,7 +67,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user', + url: '/user', method: 'POST', headers, body: body, @@ -80,8 +80,8 @@ export class UserApi extends BaseAPI { */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> + createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); const headers: HttpHeaders = { @@ -89,7 +89,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithArray', + url: '/user/createWithArray', method: 'POST', headers, body: body, @@ -102,8 +102,8 @@ export class UserApi extends BaseAPI { */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> + createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); const headers: HttpHeaders = { @@ -111,7 +111,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/createWithList', + url: '/user/createWithList', method: 'POST', headers, body: body, @@ -125,12 +125,12 @@ export class UserApi extends BaseAPI { */ deleteUser({ username }: DeleteUserRequest): Observable deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> - deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> + deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -141,12 +141,12 @@ export class UserApi extends BaseAPI { */ getUserByName({ username }: GetUserByNameRequest): Observable getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> - getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> + getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -157,8 +157,8 @@ export class UserApi extends BaseAPI { */ loginUser({ username, password }: LoginUserRequest): Observable loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> - loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> + loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); throwIfNullOrUndefined(password, 'loginUser'); @@ -168,7 +168,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/login', + url: '/user/login', method: 'GET', query, progressSubscriber: opts?.progressSubscriber, @@ -180,10 +180,10 @@ export class UserApi extends BaseAPI { */ logoutUser(): Observable logoutUser(opts?: Pick): Observable - logoutUser(opts?: OperationOpts): Observable> - logoutUser(opts?: OperationOpts): Observable> { + logoutUser(opts?: OperationOpts): Observable> + logoutUser(opts?: OperationOpts): Observable> { return this.request({ - path: '/user/logout', + url: '/user/logout', method: 'GET', progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); @@ -195,8 +195,8 @@ export class UserApi extends BaseAPI { */ updateUser({ username, body }: UpdateUserRequest): Observable updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> - updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> + updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); throwIfNullOrUndefined(body, 'updateUser'); @@ -205,7 +205,7 @@ export class UserApi extends BaseAPI { }; return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), + url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'PUT', headers, body: body, diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 472396008f19..8df667fda24d 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -79,35 +79,32 @@ export class BaseAPI { this.withMiddleware(postMiddlewares.map((post) => ({ post }))); protected request(requestOpts: RequestOpts): Observable - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> - protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> + protected request(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable> { return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe( map((res) => { const { status, response } = res; if (status >= 200 && status < 300) { - return responseOpts?.withStatusCode ? { data: response, statusCode: status } : response; + return responseOpts?.respone === 'raw' ? res : response; } throw res; }) ); } - private createRequestArgs = (requestOpts: RequestOpts): RequestArgs => { - let url = this.configuration.basePath + requestOpts.path; - if (requestOpts.query !== undefined && Object.keys(requestOpts.query).length !== 0) { - // only add the queryString to the URL if there are query parameters. - // this is done to avoid urls ending with a '?' character which buggy webservers - // do not handle correctly sometimes. - url += '?' + queryString(requestOpts.query); - } + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + // only add the queryString to the URL if there are query parameters. + // this is done to avoid urls ending with a '?' character which buggy webservers + // do not handle correctly sometimes. + const url = `${this.configuration.basePath}${baseUrl}${query && Object.keys(query).length ? `?${queryString(query)}`: ''}`; return { url, - method: requestOpts.method, - headers: requestOpts.headers, - body: requestOpts.body instanceof FormData ? requestOpts.body : JSON.stringify(requestOpts.body), - responseType: requestOpts.responseType ?? 'json', - progressSubscriber: requestOpts.progressSubscriber, + method, + headers, + body: body instanceof FormData ? body : JSON.stringify(body), + responseType: responseType ?? 'json', + progressSubscriber, }; } @@ -156,18 +153,18 @@ export type HttpHeaders = { [key: string]: string }; export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array }>; // partial is needed for strict mode export type HttpBody = Json | FormData; -export interface RequestOpts { - path: string; +export interface RequestOpts extends AjaxRequest { + query?: HttpQuery; // additional prop + // the following props have improved types over AjaxRequest method: HttpMethod; headers?: HttpHeaders; - query?: HttpQuery; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; progressSubscriber?: Subscriber; } export interface ResponseOpts { - withStatusCode?: boolean; + respone?: 'raw'; } export interface OperationOpts { @@ -175,9 +172,9 @@ export interface OperationOpts { responseOpts?: ResponseOpts; } -export interface ResponseWithExtras { - data: T; - statusCode: number; +// AjaxResponse with typed response +export interface RawAjaxResponse extends AjaxResponse { + response: T; } export const encodeURI = (value: any) => encodeURIComponent(String(value)); From 0b71548d448beb2911b2d22b44c797da40f0a267 Mon Sep 17 00:00:00 2001 From: Justin Van Dort Date: Mon, 27 Apr 2020 21:35:25 -0400 Subject: [PATCH 13/22] Prints out the parameter name in throwIfNullOrUndefined --- .../resources/typescript-rxjs/apis.mustache | 2 +- .../resources/typescript-rxjs/runtime.mustache | 4 ++-- .../builds/default/apis/PetApi.ts | 16 ++++++++-------- .../builds/default/apis/StoreApi.ts | 6 +++--- .../builds/default/apis/UserApi.ts | 18 +++++++++--------- .../typescript-rxjs/builds/default/runtime.ts | 4 ++-- .../builds/es6-target/apis/PetApi.ts | 16 ++++++++-------- .../builds/es6-target/apis/StoreApi.ts | 6 +++--- .../builds/es6-target/apis/UserApi.ts | 18 +++++++++--------- .../builds/es6-target/runtime.ts | 4 ++-- .../builds/with-interfaces/apis/PetApi.ts | 16 ++++++++-------- .../builds/with-interfaces/apis/StoreApi.ts | 6 +++--- .../builds/with-interfaces/apis/UserApi.ts | 18 +++++++++--------- .../builds/with-interfaces/runtime.ts | 4 ++-- .../builds/with-npm-version/apis/PetApi.ts | 16 ++++++++-------- .../builds/with-npm-version/apis/StoreApi.ts | 6 +++--- .../builds/with-npm-version/apis/UserApi.ts | 18 +++++++++--------- .../builds/with-npm-version/runtime.ts | 4 ++-- 18 files changed, 91 insertions(+), 91 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache index 6fc3928c4872..4aae18a02f0e 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache @@ -41,7 +41,7 @@ export class {{classname}} extends BaseAPI { {{#hasParams}} {{#allParams}} {{#required}} - throwIfNullOrUndefined({{> paramNamePartial}}, '{{nickname}}'); + throwIfNullOrUndefined({{> paramNamePartial}}, '{{> paramNamePartial}}', '{{nickname}}'); {{/required}} {{/allParams}} diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 366d9b5c4419..d32347c4d2e6 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -178,9 +178,9 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, nickname?: string) => { +export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { if (value == null) { - throw new Error(`Parameter "${value}" was null or undefined when calling "${nickname}".`); + throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts index 3b3232c44dbb..021781fd7abb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts @@ -64,7 +64,7 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet = ({ body }: AddPetRequest): Observable => { - throwIfNullOrUndefined(body, 'addPet'); + throwIfNullOrUndefined(body, 'body', 'addPet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -89,7 +89,7 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { - throwIfNullOrUndefined(petId, 'deletePet'); + throwIfNullOrUndefined(petId, 'petId', 'deletePet'); const headers: HttpHeaders = { ...(apiKey != null ? { 'api_key': String(apiKey) } : undefined), @@ -114,7 +114,7 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { - throwIfNullOrUndefined(status, 'findPetsByStatus'); + throwIfNullOrUndefined(status, 'status', 'findPetsByStatus'); const headers: HttpHeaders = { // oauth required @@ -143,7 +143,7 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { - throwIfNullOrUndefined(tags, 'findPetsByTags'); + throwIfNullOrUndefined(tags, 'tags', 'findPetsByTags'); const headers: HttpHeaders = { // oauth required @@ -172,7 +172,7 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById = ({ petId }: GetPetByIdRequest): Observable => { - throwIfNullOrUndefined(petId, 'getPetById'); + throwIfNullOrUndefined(petId, 'petId', 'getPetById'); const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -189,7 +189,7 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet = ({ body }: UpdatePetRequest): Observable => { - throwIfNullOrUndefined(body, 'updatePet'); + throwIfNullOrUndefined(body, 'body', 'updatePet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -214,7 +214,7 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { - throwIfNullOrUndefined(petId, 'updatePetWithForm'); + throwIfNullOrUndefined(petId, 'petId', 'updatePetWithForm'); const headers: HttpHeaders = { // oauth required @@ -242,7 +242,7 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { - throwIfNullOrUndefined(petId, 'uploadFile'); + throwIfNullOrUndefined(petId, 'petId', 'uploadFile'); const headers: HttpHeaders = { // oauth required diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts index aac36206d606..8ce04d16aa04 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts @@ -39,7 +39,7 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { - throwIfNullOrUndefined(orderId, 'deleteOrder'); + throwIfNullOrUndefined(orderId, 'orderId', 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -68,7 +68,7 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { - throwIfNullOrUndefined(orderId, 'getOrderById'); + throwIfNullOrUndefined(orderId, 'orderId', 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -80,7 +80,7 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder = ({ body }: PlaceOrderRequest): Observable => { - throwIfNullOrUndefined(body, 'placeOrder'); + throwIfNullOrUndefined(body, 'body', 'placeOrder'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts index 1b3c07eea4f7..a223874786eb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts @@ -57,7 +57,7 @@ export class UserApi extends BaseAPI { * Create user */ createUser = ({ body }: CreateUserRequest): Observable => { - throwIfNullOrUndefined(body, 'createUser'); + throwIfNullOrUndefined(body, 'body', 'createUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -75,7 +75,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithArrayInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -93,7 +93,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithListInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithListInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -112,7 +112,7 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser = ({ username }: DeleteUserRequest): Observable => { - throwIfNullOrUndefined(username, 'deleteUser'); + throwIfNullOrUndefined(username, 'username', 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -124,7 +124,7 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName = ({ username }: GetUserByNameRequest): Observable => { - throwIfNullOrUndefined(username, 'getUserByName'); + throwIfNullOrUndefined(username, 'username', 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -136,8 +136,8 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser = ({ username, password }: LoginUserRequest): Observable => { - throwIfNullOrUndefined(username, 'loginUser'); - throwIfNullOrUndefined(password, 'loginUser'); + throwIfNullOrUndefined(username, 'username', 'loginUser'); + throwIfNullOrUndefined(password, 'password', 'loginUser'); const query: HttpQuery = { // required parameters are used directly since they are already checked by throwIfNullOrUndefined 'username': username, @@ -166,8 +166,8 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser = ({ username, body }: UpdateUserRequest): Observable => { - throwIfNullOrUndefined(username, 'updateUser'); - throwIfNullOrUndefined(body, 'updateUser'); + throwIfNullOrUndefined(username, 'username', 'updateUser'); + throwIfNullOrUndefined(body, 'body', 'updateUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index e4c93e87e513..db7440627cee 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -189,9 +189,9 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, nickname?: string) => { +export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { if (value == null) { - throw new Error(`Parameter "${value}" was null or undefined when calling "${nickname}".`); + throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts index 3b3232c44dbb..021781fd7abb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts @@ -64,7 +64,7 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet = ({ body }: AddPetRequest): Observable => { - throwIfNullOrUndefined(body, 'addPet'); + throwIfNullOrUndefined(body, 'body', 'addPet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -89,7 +89,7 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { - throwIfNullOrUndefined(petId, 'deletePet'); + throwIfNullOrUndefined(petId, 'petId', 'deletePet'); const headers: HttpHeaders = { ...(apiKey != null ? { 'api_key': String(apiKey) } : undefined), @@ -114,7 +114,7 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { - throwIfNullOrUndefined(status, 'findPetsByStatus'); + throwIfNullOrUndefined(status, 'status', 'findPetsByStatus'); const headers: HttpHeaders = { // oauth required @@ -143,7 +143,7 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { - throwIfNullOrUndefined(tags, 'findPetsByTags'); + throwIfNullOrUndefined(tags, 'tags', 'findPetsByTags'); const headers: HttpHeaders = { // oauth required @@ -172,7 +172,7 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById = ({ petId }: GetPetByIdRequest): Observable => { - throwIfNullOrUndefined(petId, 'getPetById'); + throwIfNullOrUndefined(petId, 'petId', 'getPetById'); const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -189,7 +189,7 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet = ({ body }: UpdatePetRequest): Observable => { - throwIfNullOrUndefined(body, 'updatePet'); + throwIfNullOrUndefined(body, 'body', 'updatePet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -214,7 +214,7 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { - throwIfNullOrUndefined(petId, 'updatePetWithForm'); + throwIfNullOrUndefined(petId, 'petId', 'updatePetWithForm'); const headers: HttpHeaders = { // oauth required @@ -242,7 +242,7 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { - throwIfNullOrUndefined(petId, 'uploadFile'); + throwIfNullOrUndefined(petId, 'petId', 'uploadFile'); const headers: HttpHeaders = { // oauth required diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts index aac36206d606..8ce04d16aa04 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts @@ -39,7 +39,7 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { - throwIfNullOrUndefined(orderId, 'deleteOrder'); + throwIfNullOrUndefined(orderId, 'orderId', 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -68,7 +68,7 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { - throwIfNullOrUndefined(orderId, 'getOrderById'); + throwIfNullOrUndefined(orderId, 'orderId', 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -80,7 +80,7 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder = ({ body }: PlaceOrderRequest): Observable => { - throwIfNullOrUndefined(body, 'placeOrder'); + throwIfNullOrUndefined(body, 'body', 'placeOrder'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts index 1b3c07eea4f7..a223874786eb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts @@ -57,7 +57,7 @@ export class UserApi extends BaseAPI { * Create user */ createUser = ({ body }: CreateUserRequest): Observable => { - throwIfNullOrUndefined(body, 'createUser'); + throwIfNullOrUndefined(body, 'body', 'createUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -75,7 +75,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithArrayInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -93,7 +93,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithListInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithListInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -112,7 +112,7 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser = ({ username }: DeleteUserRequest): Observable => { - throwIfNullOrUndefined(username, 'deleteUser'); + throwIfNullOrUndefined(username, 'username', 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -124,7 +124,7 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName = ({ username }: GetUserByNameRequest): Observable => { - throwIfNullOrUndefined(username, 'getUserByName'); + throwIfNullOrUndefined(username, 'username', 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -136,8 +136,8 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser = ({ username, password }: LoginUserRequest): Observable => { - throwIfNullOrUndefined(username, 'loginUser'); - throwIfNullOrUndefined(password, 'loginUser'); + throwIfNullOrUndefined(username, 'username', 'loginUser'); + throwIfNullOrUndefined(password, 'password', 'loginUser'); const query: HttpQuery = { // required parameters are used directly since they are already checked by throwIfNullOrUndefined 'username': username, @@ -166,8 +166,8 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser = ({ username, body }: UpdateUserRequest): Observable => { - throwIfNullOrUndefined(username, 'updateUser'); - throwIfNullOrUndefined(body, 'updateUser'); + throwIfNullOrUndefined(username, 'username', 'updateUser'); + throwIfNullOrUndefined(body, 'body', 'updateUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index e4c93e87e513..db7440627cee 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -189,9 +189,9 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, nickname?: string) => { +export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { if (value == null) { - throw new Error(`Parameter "${value}" was null or undefined when calling "${nickname}".`); + throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts index 3b3232c44dbb..021781fd7abb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts @@ -64,7 +64,7 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet = ({ body }: AddPetRequest): Observable => { - throwIfNullOrUndefined(body, 'addPet'); + throwIfNullOrUndefined(body, 'body', 'addPet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -89,7 +89,7 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { - throwIfNullOrUndefined(petId, 'deletePet'); + throwIfNullOrUndefined(petId, 'petId', 'deletePet'); const headers: HttpHeaders = { ...(apiKey != null ? { 'api_key': String(apiKey) } : undefined), @@ -114,7 +114,7 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { - throwIfNullOrUndefined(status, 'findPetsByStatus'); + throwIfNullOrUndefined(status, 'status', 'findPetsByStatus'); const headers: HttpHeaders = { // oauth required @@ -143,7 +143,7 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { - throwIfNullOrUndefined(tags, 'findPetsByTags'); + throwIfNullOrUndefined(tags, 'tags', 'findPetsByTags'); const headers: HttpHeaders = { // oauth required @@ -172,7 +172,7 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById = ({ petId }: GetPetByIdRequest): Observable => { - throwIfNullOrUndefined(petId, 'getPetById'); + throwIfNullOrUndefined(petId, 'petId', 'getPetById'); const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -189,7 +189,7 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet = ({ body }: UpdatePetRequest): Observable => { - throwIfNullOrUndefined(body, 'updatePet'); + throwIfNullOrUndefined(body, 'body', 'updatePet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -214,7 +214,7 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { - throwIfNullOrUndefined(petId, 'updatePetWithForm'); + throwIfNullOrUndefined(petId, 'petId', 'updatePetWithForm'); const headers: HttpHeaders = { // oauth required @@ -242,7 +242,7 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { - throwIfNullOrUndefined(petId, 'uploadFile'); + throwIfNullOrUndefined(petId, 'petId', 'uploadFile'); const headers: HttpHeaders = { // oauth required diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts index aac36206d606..8ce04d16aa04 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts @@ -39,7 +39,7 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { - throwIfNullOrUndefined(orderId, 'deleteOrder'); + throwIfNullOrUndefined(orderId, 'orderId', 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -68,7 +68,7 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { - throwIfNullOrUndefined(orderId, 'getOrderById'); + throwIfNullOrUndefined(orderId, 'orderId', 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -80,7 +80,7 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder = ({ body }: PlaceOrderRequest): Observable => { - throwIfNullOrUndefined(body, 'placeOrder'); + throwIfNullOrUndefined(body, 'body', 'placeOrder'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts index 1b3c07eea4f7..a223874786eb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts @@ -57,7 +57,7 @@ export class UserApi extends BaseAPI { * Create user */ createUser = ({ body }: CreateUserRequest): Observable => { - throwIfNullOrUndefined(body, 'createUser'); + throwIfNullOrUndefined(body, 'body', 'createUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -75,7 +75,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithArrayInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -93,7 +93,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithListInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithListInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -112,7 +112,7 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser = ({ username }: DeleteUserRequest): Observable => { - throwIfNullOrUndefined(username, 'deleteUser'); + throwIfNullOrUndefined(username, 'username', 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -124,7 +124,7 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName = ({ username }: GetUserByNameRequest): Observable => { - throwIfNullOrUndefined(username, 'getUserByName'); + throwIfNullOrUndefined(username, 'username', 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -136,8 +136,8 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser = ({ username, password }: LoginUserRequest): Observable => { - throwIfNullOrUndefined(username, 'loginUser'); - throwIfNullOrUndefined(password, 'loginUser'); + throwIfNullOrUndefined(username, 'username', 'loginUser'); + throwIfNullOrUndefined(password, 'password', 'loginUser'); const query: HttpQuery = { // required parameters are used directly since they are already checked by throwIfNullOrUndefined 'username': username, @@ -166,8 +166,8 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser = ({ username, body }: UpdateUserRequest): Observable => { - throwIfNullOrUndefined(username, 'updateUser'); - throwIfNullOrUndefined(body, 'updateUser'); + throwIfNullOrUndefined(username, 'username', 'updateUser'); + throwIfNullOrUndefined(body, 'body', 'updateUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index e4c93e87e513..db7440627cee 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -189,9 +189,9 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, nickname?: string) => { +export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { if (value == null) { - throw new Error(`Parameter "${value}" was null or undefined when calling "${nickname}".`); + throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts index 3b3232c44dbb..021781fd7abb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts @@ -64,7 +64,7 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet = ({ body }: AddPetRequest): Observable => { - throwIfNullOrUndefined(body, 'addPet'); + throwIfNullOrUndefined(body, 'body', 'addPet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -89,7 +89,7 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet = ({ petId, apiKey }: DeletePetRequest): Observable => { - throwIfNullOrUndefined(petId, 'deletePet'); + throwIfNullOrUndefined(petId, 'petId', 'deletePet'); const headers: HttpHeaders = { ...(apiKey != null ? { 'api_key': String(apiKey) } : undefined), @@ -114,7 +114,7 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus = ({ status }: FindPetsByStatusRequest): Observable> => { - throwIfNullOrUndefined(status, 'findPetsByStatus'); + throwIfNullOrUndefined(status, 'status', 'findPetsByStatus'); const headers: HttpHeaders = { // oauth required @@ -143,7 +143,7 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags = ({ tags }: FindPetsByTagsRequest): Observable> => { - throwIfNullOrUndefined(tags, 'findPetsByTags'); + throwIfNullOrUndefined(tags, 'tags', 'findPetsByTags'); const headers: HttpHeaders = { // oauth required @@ -172,7 +172,7 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById = ({ petId }: GetPetByIdRequest): Observable => { - throwIfNullOrUndefined(petId, 'getPetById'); + throwIfNullOrUndefined(petId, 'petId', 'getPetById'); const headers: HttpHeaders = { ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication @@ -189,7 +189,7 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet = ({ body }: UpdatePetRequest): Observable => { - throwIfNullOrUndefined(body, 'updatePet'); + throwIfNullOrUndefined(body, 'body', 'updatePet'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -214,7 +214,7 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm = ({ petId, name, status }: UpdatePetWithFormRequest): Observable => { - throwIfNullOrUndefined(petId, 'updatePetWithForm'); + throwIfNullOrUndefined(petId, 'petId', 'updatePetWithForm'); const headers: HttpHeaders = { // oauth required @@ -242,7 +242,7 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile = ({ petId, additionalMetadata, file }: UploadFileRequest): Observable => { - throwIfNullOrUndefined(petId, 'uploadFile'); + throwIfNullOrUndefined(petId, 'petId', 'uploadFile'); const headers: HttpHeaders = { // oauth required diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts index aac36206d606..8ce04d16aa04 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts @@ -39,7 +39,7 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { - throwIfNullOrUndefined(orderId, 'deleteOrder'); + throwIfNullOrUndefined(orderId, 'orderId', 'deleteOrder'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -68,7 +68,7 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { - throwIfNullOrUndefined(orderId, 'getOrderById'); + throwIfNullOrUndefined(orderId, 'orderId', 'getOrderById'); return this.request({ path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), @@ -80,7 +80,7 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder = ({ body }: PlaceOrderRequest): Observable => { - throwIfNullOrUndefined(body, 'placeOrder'); + throwIfNullOrUndefined(body, 'body', 'placeOrder'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts index 1b3c07eea4f7..a223874786eb 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts @@ -57,7 +57,7 @@ export class UserApi extends BaseAPI { * Create user */ createUser = ({ body }: CreateUserRequest): Observable => { - throwIfNullOrUndefined(body, 'createUser'); + throwIfNullOrUndefined(body, 'body', 'createUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -75,7 +75,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithArrayInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -93,7 +93,7 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { - throwIfNullOrUndefined(body, 'createUsersWithListInput'); + throwIfNullOrUndefined(body, 'body', 'createUsersWithListInput'); const headers: HttpHeaders = { 'Content-Type': 'application/json', @@ -112,7 +112,7 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser = ({ username }: DeleteUserRequest): Observable => { - throwIfNullOrUndefined(username, 'deleteUser'); + throwIfNullOrUndefined(username, 'username', 'deleteUser'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -124,7 +124,7 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName = ({ username }: GetUserByNameRequest): Observable => { - throwIfNullOrUndefined(username, 'getUserByName'); + throwIfNullOrUndefined(username, 'username', 'getUserByName'); return this.request({ path: '/user/{username}'.replace('{username}', encodeURI(username)), @@ -136,8 +136,8 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser = ({ username, password }: LoginUserRequest): Observable => { - throwIfNullOrUndefined(username, 'loginUser'); - throwIfNullOrUndefined(password, 'loginUser'); + throwIfNullOrUndefined(username, 'username', 'loginUser'); + throwIfNullOrUndefined(password, 'password', 'loginUser'); const query: HttpQuery = { // required parameters are used directly since they are already checked by throwIfNullOrUndefined 'username': username, @@ -166,8 +166,8 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser = ({ username, body }: UpdateUserRequest): Observable => { - throwIfNullOrUndefined(username, 'updateUser'); - throwIfNullOrUndefined(body, 'updateUser'); + throwIfNullOrUndefined(username, 'username', 'updateUser'); + throwIfNullOrUndefined(body, 'body', 'updateUser'); const headers: HttpHeaders = { 'Content-Type': 'application/json', diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index e4c93e87e513..db7440627cee 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -189,9 +189,9 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, nickname?: string) => { +export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { if (value == null) { - throw new Error(`Parameter "${value}" was null or undefined when calling "${nickname}".`); + throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } }; From 7ddf3adccbf1e88d8f13f617cb2ee6c22c5f6ff9 Mon Sep 17 00:00:00 2001 From: Justin Van Dort Date: Mon, 27 Apr 2020 23:02:46 -0400 Subject: [PATCH 14/22] Fixed misspelling --- .../src/main/resources/typescript-rxjs/runtime.mustache | 2 +- .../client/petstore/typescript-rxjs/builds/default/runtime.ts | 2 +- .../petstore/typescript-rxjs/builds/es6-target/runtime.ts | 2 +- .../petstore/typescript-rxjs/builds/with-interfaces/runtime.ts | 2 +- .../petstore/typescript-rxjs/builds/with-npm-version/runtime.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index d32347c4d2e6..0879b0b551fc 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -178,7 +178,7 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { +export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => { if (value == null) { throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index db7440627cee..f2b07e82ce45 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -189,7 +189,7 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { +export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => { if (value == null) { throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index db7440627cee..f2b07e82ce45 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -189,7 +189,7 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { +export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => { if (value == null) { throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts index db7440627cee..f2b07e82ce45 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts @@ -189,7 +189,7 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { +export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => { if (value == null) { throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index db7440627cee..f2b07e82ce45 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -189,7 +189,7 @@ export const throwIfRequired = (params: {[key: string]: any}, key: string, nickn } }; -export const throwIfNullOrUndefined = (value: any, pramName: string, nickname: string) => { +export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => { if (value == null) { throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`); } From e131635c677abe9e533996f2f85e9dc80351ea71 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:07:53 +0200 Subject: [PATCH 15/22] feat(typescript-rxjs): add withProgressSubscriber additional-properties flag to cli, remove unused withInterfaces flag --- bin/typescript-rxjs-petstore-all.sh | 2 +- ... typescript-rxjs-petstore-with-progress-subscriber.sh} | 2 +- bin/windows/typescript-rxjs-petstore-all.bat | 2 +- ...typescript-rxjs-petstore-with-progress-subscriber.bat} | 2 +- .../codegen/languages/TypeScriptRxjsClientCodegen.java | 4 ++-- .../src/main/resources/typescript-rxjs/apis.mustache | 4 ++++ .../src/main/resources/typescript-rxjs/runtime.mustache | 8 +++++++- 7 files changed, 17 insertions(+), 7 deletions(-) rename bin/{typescript-rxjs-petstore-interfaces.sh => typescript-rxjs-petstore-with-progress-subscriber.sh} (88%) rename bin/windows/{typescript-rxjs-petstore-interfaces.bat => typescript-rxjs-petstore-with-progress-subscriber.bat} (75%) diff --git a/bin/typescript-rxjs-petstore-all.sh b/bin/typescript-rxjs-petstore-all.sh index 2391a66637bd..c025cb638899 100755 --- a/bin/typescript-rxjs-petstore-all.sh +++ b/bin/typescript-rxjs-petstore-all.sh @@ -2,5 +2,5 @@ ./bin/typescript-rxjs-petstore-target-es6.sh ./bin/typescript-rxjs-petstore-with-npm-version.sh -./bin/typescript-rxjs-petstore-interfaces.sh +./bin/typescript-rxjs-petstore-with-progress-subscriber.sh ./bin/typescript-rxjs-petstore.sh diff --git a/bin/typescript-rxjs-petstore-interfaces.sh b/bin/typescript-rxjs-petstore-with-progress-subscriber.sh similarity index 88% rename from bin/typescript-rxjs-petstore-interfaces.sh rename to bin/typescript-rxjs-petstore-with-progress-subscriber.sh index c7b52aca5265..45bfe05d7f84 100755 --- a/bin/typescript-rxjs-petstore-interfaces.sh +++ b/bin/typescript-rxjs-petstore-with-progress-subscriber.sh @@ -27,6 +27,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g typescript-rxjs -o samples/client/petstore/typescript-rxjs/builds/with-interfaces --additional-properties withInterfaces=true $@" +ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g typescript-rxjs -o samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber --additional-properties withProgressSubscriber=true $@" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/typescript-rxjs-petstore-all.bat b/bin/windows/typescript-rxjs-petstore-all.bat index d86cf0d574dd..88cb65bfb1c8 100644 --- a/bin/windows/typescript-rxjs-petstore-all.bat +++ b/bin/windows/typescript-rxjs-petstore-all.bat @@ -3,4 +3,4 @@ call bin\windows\typescript-rxjs-petstore.bat call bin\windows\typescript-rxjs-petstore-target-es6.bat call bin\windows\typescript-rxjs-petstore-with-npm-version.bat -call bin\windows\typescript-rxjs-petstore-interfaces.bat +call bin\windows\typescript-rxjs-petstore-with-progress-subscriber.bat diff --git a/bin/windows/typescript-rxjs-petstore-interfaces.bat b/bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat similarity index 75% rename from bin/windows/typescript-rxjs-petstore-interfaces.bat rename to bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat index b2232e82cd34..f650edce01eb 100644 --- a/bin/windows/typescript-rxjs-petstore-interfaces.bat +++ b/bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat @@ -7,6 +7,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g typescript-rxjs -o samples\client\petstore\typescript-rxjs\builds\with-interfaces --additional-properties withInterfaces=true +set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g typescript-rxjs -o samples\client\petstore\typescript-rxjs\builds\with-progress-subscriber --additional-properties withProgressSubscriber=true java %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptRxjsClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptRxjsClientCodegen.java index 2d00d6b30a01..09bfa07ce22a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptRxjsClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptRxjsClientCodegen.java @@ -37,7 +37,7 @@ public class TypeScriptRxjsClientCodegen extends AbstractTypeScriptClientCodegen private static final Logger LOGGER = LoggerFactory.getLogger(AbstractTypeScriptClientCodegen.class); public static final String NPM_REPOSITORY = "npmRepository"; - public static final String WITH_INTERFACES = "withInterfaces"; + public static final String WITH_PROGRESS_SUBSCRIBER = "withProgressSubscriber"; protected String npmRepository = null; protected Set reservedParamNames = new HashSet<>(); @@ -60,7 +60,7 @@ public TypeScriptRxjsClientCodegen() { typeMapping.put("file", "Blob"); this.cliOptions.add(new CliOption(NPM_REPOSITORY, "Use this property to set an url your private npmRepo in the package.json")); - this.cliOptions.add(new CliOption(WITH_INTERFACES, "Setting this property to true will generate interfaces next to the default class implementations.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); + this.cliOptions.add(new CliOption(WITH_PROGRESS_SUBSCRIBER, "Setting this property to true will generate API controller methods with support for subscribing to request progress.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); // these are used in the api template for more efficient destructuring this.reservedParamNames.add("headers"); diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache index a2befbc6a9a3..9fdeb65310ad 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/apis.mustache @@ -38,7 +38,9 @@ export class {{classname}} extends BaseAPI { {{/summary}} */ {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request{{/allParams.0}}): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> +{{#withProgressSubscriber}} {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: Pick): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> +{{/withProgressSubscriber}} {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}RawAjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | RawAjaxResponse{{/returnType}}> {{nickname}}({{#allParams.0}}{ {{#allParams}}{{paramName}}{{#vendorExtensions.x-param-name-alternative}}: {{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^-last}}, {{/-last}}{{/allParams}} }: {{operationIdCamelCase}}Request, {{/allParams.0}}opts?: OperationOpts): Observable<{{#returnType}}{{{returnType}}} | RawAjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | RawAjaxResponse{{/returnType}}> { {{#hasParams}} @@ -209,7 +211,9 @@ export class {{classname}} extends BaseAPI { {{#isResponseFile}} responseType: 'blob', {{/isResponseFile}} +{{#withProgressSubscriber}} progressSubscriber: opts?.progressSubscriber, +{{/withProgressSubscriber}} }, opts?.responseOpts); }; diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index ba0b958cb5e0..c8774ff0a9bf 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -81,7 +81,7 @@ export class BaseAPI { ); } - private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType{{#withProgressSubscriber}}, progressSubscriber{{/withProgressSubscriber}} }: RequestOpts): RequestArgs => { // only add the queryString to the URL if there are query parameters. // this is done to avoid urls ending with a '?' character which buggy webservers // do not handle correctly sometimes. @@ -93,7 +93,9 @@ export class BaseAPI { headers, body: body instanceof FormData ? body : JSON.stringify(body), responseType: responseType ?? 'json', +{{#withProgressSubscriber}} progressSubscriber, +{{/withProgressSubscriber}} }; } @@ -149,7 +151,9 @@ export interface RequestOpts extends AjaxRequest { headers?: HttpHeaders; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; +{{#withProgressSubscriber}} progressSubscriber?: Subscriber; +{{/withProgressSubscriber}} } export interface ResponseOpts { @@ -157,7 +161,9 @@ export interface ResponseOpts { } export interface OperationOpts { +{{#withProgressSubscriber}} progressSubscriber?: Subscriber; +{{/withProgressSubscriber}} responseOpts?: ResponseOpts; } From 77b56b61b1a8f761aeaeb351482eba56fb641929 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:09:09 +0200 Subject: [PATCH 16/22] refactor(typescript-rxjs): use backticks instead of String constructor in encodeURI --- .../src/main/resources/typescript-rxjs/runtime.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index c8774ff0a9bf..f9b89db74d1a 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -172,7 +172,7 @@ export interface RawAjaxResponse extends AjaxResponse { response: T; } -export const encodeURI = (value: any) => encodeURIComponent(String(value)); +export const encodeURI = (value: any) => encodeURIComponent(`${value}`); const queryString = (params: HttpQuery): string => Object.keys(params) .map((key) => { From b826928fea1c63e528272dcfc266f2812d4a9b20 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:35:52 +0200 Subject: [PATCH 17/22] feat(typescript-rxjs): replace Object.keys() with Object.entries() in queryString helper --- .../main/resources/typescript-rxjs/runtime.mustache | 12 +++++------- .../main/resources/typescript-rxjs/tsconfig.mustache | 7 ++++--- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index f9b89db74d1a..87c5bc56aa56 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -174,13 +174,11 @@ export interface RawAjaxResponse extends AjaxResponse { export const encodeURI = (value: any) => encodeURIComponent(`${value}`); -const queryString = (params: HttpQuery): string => Object.keys(params) - .map((key) => { - const value = params[key]; - return (value instanceof Array) - ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') - : `${encodeURI(key)}=${encodeURI(value)}`; - }) +const queryString = (params: HttpQuery): string => Object.entries(params) + .map(([key, value]) => value instanceof Array + ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') + : `${encodeURI(key)}=${encodeURI(value)}` + ) .join('&'); // alias fallback for not being a breaking change diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache index 328c7d4e141a..10c5e9af6445 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache @@ -6,12 +6,13 @@ "moduleResolution": "node", "outDir": "dist", "rootDir": ".", - {{^supportsES6}} "lib": [ + {{^supportsES6}} "es6", - "dom" + {{/supportsES6}} + "dom", + "es2017.object" ], - {{/supportsES6}} "typeRoots": [ "node_modules/@types" ] From 9cea1f7534e7f82d06d058d035e5e17059f6cf30 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:36:53 +0200 Subject: [PATCH 18/22] style(typescript-rxjs): improve indentation of new withProgressSubscriber checks within templates --- .../main/resources/typescript-rxjs/runtime.mustache | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache index 87c5bc56aa56..4aab48da5677 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/runtime.mustache @@ -93,9 +93,9 @@ export class BaseAPI { headers, body: body instanceof FormData ? body : JSON.stringify(body), responseType: responseType ?? 'json', -{{#withProgressSubscriber}} + {{#withProgressSubscriber}} progressSubscriber, -{{/withProgressSubscriber}} + {{/withProgressSubscriber}} }; } @@ -151,9 +151,9 @@ export interface RequestOpts extends AjaxRequest { headers?: HttpHeaders; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; -{{#withProgressSubscriber}} + {{#withProgressSubscriber}} progressSubscriber?: Subscriber; -{{/withProgressSubscriber}} + {{/withProgressSubscriber}} } export interface ResponseOpts { @@ -161,9 +161,9 @@ export interface ResponseOpts { } export interface OperationOpts { -{{#withProgressSubscriber}} + {{#withProgressSubscriber}} progressSubscriber?: Subscriber; -{{/withProgressSubscriber}} + {{/withProgressSubscriber}} responseOpts?: ResponseOpts; } From 5ca8f47d553535cffcd80c981aeb97a30087ca07 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:40:02 +0200 Subject: [PATCH 19/22] feat(typescript-rxjs): use entire es2017 lib in tsconfig.json for building with target es6 --- .../src/main/resources/typescript-rxjs/tsconfig.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache b/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache index 10c5e9af6445..0779a8b0037f 100644 --- a/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-rxjs/tsconfig.mustache @@ -11,7 +11,7 @@ "es6", {{/supportsES6}} "dom", - "es2017.object" + "es2017" ], "typeRoots": [ "node_modules/@types" From 7d895d62c3f2edfd1cc2c67c032beb4a271fe91c Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Wed, 13 May 2020 16:41:31 +0200 Subject: [PATCH 20/22] feat(typescript-rxjs): regenerate samples --- .../builds/default/apis/PetApi.ts | 16 ---------------- .../builds/default/apis/StoreApi.ts | 8 -------- .../builds/default/apis/UserApi.ts | 16 ---------------- .../typescript-rxjs/builds/default/runtime.ts | 19 +++++++------------ .../builds/default/tsconfig.json | 3 ++- .../builds/es6-target/apis/PetApi.ts | 16 ---------------- .../builds/es6-target/apis/StoreApi.ts | 8 -------- .../builds/es6-target/apis/UserApi.ts | 16 ---------------- .../builds/es6-target/runtime.ts | 19 +++++++------------ .../builds/es6-target/tsconfig.json | 4 ++++ .../builds/with-npm-version/apis/PetApi.ts | 16 ---------------- .../builds/with-npm-version/apis/StoreApi.ts | 8 -------- .../builds/with-npm-version/apis/UserApi.ts | 16 ---------------- .../builds/with-npm-version/runtime.ts | 19 +++++++------------ .../builds/with-npm-version/tsconfig.json | 3 ++- .../.gitignore | 0 .../.openapi-generator-ignore | 0 .../.openapi-generator/VERSION | 0 .../apis/PetApi.ts | 0 .../apis/StoreApi.ts | 0 .../apis/UserApi.ts | 0 .../apis/index.ts | 0 .../index.ts | 0 .../models/ApiResponse.ts | 0 .../models/Category.ts | 0 .../models/Order.ts | 0 .../models/Pet.ts | 0 .../models/Tag.ts | 0 .../models/User.ts | 0 .../models/index.ts | 0 .../runtime.ts | 16 +++++++--------- .../tsconfig.json | 3 ++- 32 files changed, 38 insertions(+), 168 deletions(-) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/.gitignore (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/.openapi-generator-ignore (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/.openapi-generator/VERSION (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/apis/PetApi.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/apis/StoreApi.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/apis/UserApi.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/apis/index.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/index.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/ApiResponse.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/Category.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/Order.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/Pet.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/Tag.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/User.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/models/index.ts (100%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/runtime.ts (94%) rename samples/client/petstore/typescript-rxjs/builds/{with-interfaces => with-progress-subscriber}/tsconfig.json (91%) diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts index ff7849b15007..7d0c62871671 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/PetApi.ts @@ -64,7 +64,6 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet({ body }: AddPetRequest): Observable - addPet({ body }: AddPetRequest, opts?: Pick): Observable addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,7 +84,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -93,7 +91,6 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet({ petId, apiKey }: DeletePetRequest): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +110,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -122,7 +118,6 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +141,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -155,7 +149,6 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +172,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -188,7 +180,6 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById({ petId }: GetPetByIdRequest): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,7 +192,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -209,7 +199,6 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet({ body }: UpdatePetRequest): Observable - updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,7 +219,6 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -238,7 +226,6 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,7 +249,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -270,7 +256,6 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +279,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts index 11328ecd2507..400ceb74869c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/StoreApi.ts @@ -39,7 +39,6 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder({ orderId }: DeleteOrderRequest): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); @@ -47,7 +46,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -56,7 +54,6 @@ export class StoreApi extends BaseAPI { * Returns pet inventories by status */ getInventory(): Observable<{ [key: string]: number; }> - getInventory(opts?: Pick): Observable<{ [key: string]: number; }> getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { @@ -67,7 +64,6 @@ export class StoreApi extends BaseAPI { url: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -76,7 +72,6 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById({ orderId }: GetOrderByIdRequest): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); @@ -84,7 +79,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -92,7 +86,6 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder({ body }: PlaceOrderRequest): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +99,6 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts index 1d0d07d4e202..ab00d3f4dc4f 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/apis/UserApi.ts @@ -57,7 +57,6 @@ export class UserApi extends BaseAPI { * Create user */ createUser({ body }: CreateUserRequest): Observable - createUser({ body }: CreateUserRequest, opts?: Pick): Observable createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,7 +70,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -79,7 +77,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,7 +90,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -101,7 +97,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +110,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -124,7 +118,6 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser({ username }: DeleteUserRequest): Observable - deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); @@ -132,7 +125,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -140,7 +132,6 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName({ username }: GetUserByNameRequest): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); @@ -148,7 +139,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -156,7 +146,6 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser({ username, password }: LoginUserRequest): Observable - loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); @@ -171,7 +160,6 @@ export class UserApi extends BaseAPI { url: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -179,13 +167,11 @@ export class UserApi extends BaseAPI { * Logs out current logged in user session */ logoutUser(): Observable - logoutUser(opts?: Pick): Observable logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ url: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -194,7 +180,6 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser({ username, body }: UpdateUserRequest): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); @@ -209,7 +194,6 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 8df667fda24d..431f5d2e0471 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -92,7 +92,7 @@ export class BaseAPI { ); } - private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType }: RequestOpts): RequestArgs => { // only add the queryString to the URL if there are query parameters. // this is done to avoid urls ending with a '?' character which buggy webservers // do not handle correctly sometimes. @@ -104,7 +104,6 @@ export class BaseAPI { headers, body: body instanceof FormData ? body : JSON.stringify(body), responseType: responseType ?? 'json', - progressSubscriber, }; } @@ -160,7 +159,6 @@ export interface RequestOpts extends AjaxRequest { headers?: HttpHeaders; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; - progressSubscriber?: Subscriber; } export interface ResponseOpts { @@ -168,7 +166,6 @@ export interface ResponseOpts { } export interface OperationOpts { - progressSubscriber?: Subscriber; responseOpts?: ResponseOpts; } @@ -177,15 +174,13 @@ export interface RawAjaxResponse extends AjaxResponse { response: T; } -export const encodeURI = (value: any) => encodeURIComponent(String(value)); +export const encodeURI = (value: any) => encodeURIComponent(`${value}`); -const queryString = (params: HttpQuery): string => Object.keys(params) - .map((key) => { - const value = params[key]; - return (value instanceof Array) - ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') - : `${encodeURI(key)}=${encodeURI(value)}`; - }) +const queryString = (params: HttpQuery): string => Object.entries(params) + .map(([key, value]) => value instanceof Array + ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') + : `${encodeURI(key)}=${encodeURI(value)}` + ) .join('&'); // alias fallback for not being a breaking change diff --git a/samples/client/petstore/typescript-rxjs/builds/default/tsconfig.json b/samples/client/petstore/typescript-rxjs/builds/default/tsconfig.json index d65f2a95afc1..59a60838a05c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/tsconfig.json +++ b/samples/client/petstore/typescript-rxjs/builds/default/tsconfig.json @@ -8,7 +8,8 @@ "rootDir": ".", "lib": [ "es6", - "dom" + "dom", + "es2017" ], "typeRoots": [ "node_modules/@types" diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts index ff7849b15007..7d0c62871671 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/PetApi.ts @@ -64,7 +64,6 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet({ body }: AddPetRequest): Observable - addPet({ body }: AddPetRequest, opts?: Pick): Observable addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,7 +84,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -93,7 +91,6 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet({ petId, apiKey }: DeletePetRequest): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +110,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -122,7 +118,6 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +141,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -155,7 +149,6 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +172,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -188,7 +180,6 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById({ petId }: GetPetByIdRequest): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,7 +192,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -209,7 +199,6 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet({ body }: UpdatePetRequest): Observable - updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,7 +219,6 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -238,7 +226,6 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,7 +249,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -270,7 +256,6 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +279,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts index 11328ecd2507..400ceb74869c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/StoreApi.ts @@ -39,7 +39,6 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder({ orderId }: DeleteOrderRequest): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); @@ -47,7 +46,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -56,7 +54,6 @@ export class StoreApi extends BaseAPI { * Returns pet inventories by status */ getInventory(): Observable<{ [key: string]: number; }> - getInventory(opts?: Pick): Observable<{ [key: string]: number; }> getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { @@ -67,7 +64,6 @@ export class StoreApi extends BaseAPI { url: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -76,7 +72,6 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById({ orderId }: GetOrderByIdRequest): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); @@ -84,7 +79,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -92,7 +86,6 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder({ body }: PlaceOrderRequest): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +99,6 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts index 1d0d07d4e202..ab00d3f4dc4f 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/apis/UserApi.ts @@ -57,7 +57,6 @@ export class UserApi extends BaseAPI { * Create user */ createUser({ body }: CreateUserRequest): Observable - createUser({ body }: CreateUserRequest, opts?: Pick): Observable createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,7 +70,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -79,7 +77,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,7 +90,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -101,7 +97,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +110,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -124,7 +118,6 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser({ username }: DeleteUserRequest): Observable - deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); @@ -132,7 +125,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -140,7 +132,6 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName({ username }: GetUserByNameRequest): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); @@ -148,7 +139,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -156,7 +146,6 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser({ username, password }: LoginUserRequest): Observable - loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); @@ -171,7 +160,6 @@ export class UserApi extends BaseAPI { url: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -179,13 +167,11 @@ export class UserApi extends BaseAPI { * Logs out current logged in user session */ logoutUser(): Observable - logoutUser(opts?: Pick): Observable logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ url: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -194,7 +180,6 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser({ username, body }: UpdateUserRequest): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); @@ -209,7 +194,6 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 8df667fda24d..431f5d2e0471 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -92,7 +92,7 @@ export class BaseAPI { ); } - private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType }: RequestOpts): RequestArgs => { // only add the queryString to the URL if there are query parameters. // this is done to avoid urls ending with a '?' character which buggy webservers // do not handle correctly sometimes. @@ -104,7 +104,6 @@ export class BaseAPI { headers, body: body instanceof FormData ? body : JSON.stringify(body), responseType: responseType ?? 'json', - progressSubscriber, }; } @@ -160,7 +159,6 @@ export interface RequestOpts extends AjaxRequest { headers?: HttpHeaders; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; - progressSubscriber?: Subscriber; } export interface ResponseOpts { @@ -168,7 +166,6 @@ export interface ResponseOpts { } export interface OperationOpts { - progressSubscriber?: Subscriber; responseOpts?: ResponseOpts; } @@ -177,15 +174,13 @@ export interface RawAjaxResponse extends AjaxResponse { response: T; } -export const encodeURI = (value: any) => encodeURIComponent(String(value)); +export const encodeURI = (value: any) => encodeURIComponent(`${value}`); -const queryString = (params: HttpQuery): string => Object.keys(params) - .map((key) => { - const value = params[key]; - return (value instanceof Array) - ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') - : `${encodeURI(key)}=${encodeURI(value)}`; - }) +const queryString = (params: HttpQuery): string => Object.entries(params) + .map(([key, value]) => value instanceof Array + ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') + : `${encodeURI(key)}=${encodeURI(value)}` + ) .join('&'); // alias fallback for not being a breaking change diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/tsconfig.json b/samples/client/petstore/typescript-rxjs/builds/es6-target/tsconfig.json index 6cc02878fb79..00d4d5cc478a 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/tsconfig.json +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/tsconfig.json @@ -6,6 +6,10 @@ "moduleResolution": "node", "outDir": "dist", "rootDir": ".", + "lib": [ + "dom", + "es2017" + ], "typeRoots": [ "node_modules/@types" ] diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts index ff7849b15007..7d0c62871671 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/PetApi.ts @@ -64,7 +64,6 @@ export class PetApi extends BaseAPI { * Add a new pet to the store */ addPet({ body }: AddPetRequest): Observable - addPet({ body }: AddPetRequest, opts?: Pick): Observable addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'addPet'); @@ -85,7 +84,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -93,7 +91,6 @@ export class PetApi extends BaseAPI { * Deletes a pet */ deletePet({ petId, apiKey }: DeletePetRequest): Observable - deletePet({ petId, apiKey }: DeletePetRequest, opts?: Pick): Observable deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'deletePet'); @@ -113,7 +110,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'DELETE', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -122,7 +118,6 @@ export class PetApi extends BaseAPI { * Finds Pets by status */ findPetsByStatus({ status }: FindPetsByStatusRequest): Observable> - findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: Pick): Observable> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable>> findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(status, 'findPetsByStatus'); @@ -146,7 +141,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -155,7 +149,6 @@ export class PetApi extends BaseAPI { * Finds Pets by tags */ findPetsByTags({ tags }: FindPetsByTagsRequest): Observable> - findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: Pick): Observable> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable>> findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable | RawAjaxResponse>> { throwIfNullOrUndefined(tags, 'findPetsByTags'); @@ -179,7 +172,6 @@ export class PetApi extends BaseAPI { method: 'GET', headers, query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -188,7 +180,6 @@ export class PetApi extends BaseAPI { * Find pet by ID */ getPetById({ petId }: GetPetByIdRequest): Observable - getPetById({ petId }: GetPetByIdRequest, opts?: Pick): Observable getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'getPetById'); @@ -201,7 +192,6 @@ export class PetApi extends BaseAPI { url: '/pet/{petId}'.replace('{petId}', encodeURI(petId)), method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -209,7 +199,6 @@ export class PetApi extends BaseAPI { * Update an existing pet */ updatePet({ body }: UpdatePetRequest): Observable - updatePet({ body }: UpdatePetRequest, opts?: Pick): Observable updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'updatePet'); @@ -230,7 +219,6 @@ export class PetApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -238,7 +226,6 @@ export class PetApi extends BaseAPI { * Updates a pet in the store with form data */ updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable - updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: Pick): Observable updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'updatePetWithForm'); @@ -262,7 +249,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -270,7 +256,6 @@ export class PetApi extends BaseAPI { * uploads an image */ uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable - uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: Pick): Observable uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(petId, 'uploadFile'); @@ -294,7 +279,6 @@ export class PetApi extends BaseAPI { method: 'POST', headers, body: formData, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts index 11328ecd2507..400ceb74869c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/StoreApi.ts @@ -39,7 +39,6 @@ export class StoreApi extends BaseAPI { * Delete purchase order by ID */ deleteOrder({ orderId }: DeleteOrderRequest): Observable - deleteOrder({ orderId }: DeleteOrderRequest, opts?: Pick): Observable deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> deleteOrder({ orderId }: DeleteOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'deleteOrder'); @@ -47,7 +46,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -56,7 +54,6 @@ export class StoreApi extends BaseAPI { * Returns pet inventories by status */ getInventory(): Observable<{ [key: string]: number; }> - getInventory(opts?: Pick): Observable<{ [key: string]: number; }> getInventory(opts?: OperationOpts): Observable> getInventory(opts?: OperationOpts): Observable<{ [key: string]: number; } | RawAjaxResponse<{ [key: string]: number; }>> { const headers: HttpHeaders = { @@ -67,7 +64,6 @@ export class StoreApi extends BaseAPI { url: '/store/inventory', method: 'GET', headers, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -76,7 +72,6 @@ export class StoreApi extends BaseAPI { * Find purchase order by ID */ getOrderById({ orderId }: GetOrderByIdRequest): Observable - getOrderById({ orderId }: GetOrderByIdRequest, opts?: Pick): Observable getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> getOrderById({ orderId }: GetOrderByIdRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(orderId, 'getOrderById'); @@ -84,7 +79,6 @@ export class StoreApi extends BaseAPI { return this.request({ url: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -92,7 +86,6 @@ export class StoreApi extends BaseAPI { * Place an order for a pet */ placeOrder({ body }: PlaceOrderRequest): Observable - placeOrder({ body }: PlaceOrderRequest, opts?: Pick): Observable placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> placeOrder({ body }: PlaceOrderRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'placeOrder'); @@ -106,7 +99,6 @@ export class StoreApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts index 1d0d07d4e202..ab00d3f4dc4f 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/apis/UserApi.ts @@ -57,7 +57,6 @@ export class UserApi extends BaseAPI { * Create user */ createUser({ body }: CreateUserRequest): Observable - createUser({ body }: CreateUserRequest, opts?: Pick): Observable createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> createUser({ body }: CreateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUser'); @@ -71,7 +70,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -79,7 +77,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest): Observable - createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: Pick): Observable createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> createUsersWithArrayInput({ body }: CreateUsersWithArrayInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithArrayInput'); @@ -93,7 +90,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -101,7 +97,6 @@ export class UserApi extends BaseAPI { * Creates list of users with given input array */ createUsersWithListInput({ body }: CreateUsersWithListInputRequest): Observable - createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: Pick): Observable createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> createUsersWithListInput({ body }: CreateUsersWithListInputRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(body, 'createUsersWithListInput'); @@ -115,7 +110,6 @@ export class UserApi extends BaseAPI { method: 'POST', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -124,7 +118,6 @@ export class UserApi extends BaseAPI { * Delete user */ deleteUser({ username }: DeleteUserRequest): Observable - deleteUser({ username }: DeleteUserRequest, opts?: Pick): Observable deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> deleteUser({ username }: DeleteUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'deleteUser'); @@ -132,7 +125,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'DELETE', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -140,7 +132,6 @@ export class UserApi extends BaseAPI { * Get user by user name */ getUserByName({ username }: GetUserByNameRequest): Observable - getUserByName({ username }: GetUserByNameRequest, opts?: Pick): Observable getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> getUserByName({ username }: GetUserByNameRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'getUserByName'); @@ -148,7 +139,6 @@ export class UserApi extends BaseAPI { return this.request({ url: '/user/{username}'.replace('{username}', encodeURI(username)), method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -156,7 +146,6 @@ export class UserApi extends BaseAPI { * Logs user into the system */ loginUser({ username, password }: LoginUserRequest): Observable - loginUser({ username, password }: LoginUserRequest, opts?: Pick): Observable loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> loginUser({ username, password }: LoginUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'loginUser'); @@ -171,7 +160,6 @@ export class UserApi extends BaseAPI { url: '/user/login', method: 'GET', query, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -179,13 +167,11 @@ export class UserApi extends BaseAPI { * Logs out current logged in user session */ logoutUser(): Observable - logoutUser(opts?: Pick): Observable logoutUser(opts?: OperationOpts): Observable> logoutUser(opts?: OperationOpts): Observable> { return this.request({ url: '/user/logout', method: 'GET', - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; @@ -194,7 +180,6 @@ export class UserApi extends BaseAPI { * Updated user */ updateUser({ username, body }: UpdateUserRequest): Observable - updateUser({ username, body }: UpdateUserRequest, opts?: Pick): Observable updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> updateUser({ username, body }: UpdateUserRequest, opts?: OperationOpts): Observable> { throwIfNullOrUndefined(username, 'updateUser'); @@ -209,7 +194,6 @@ export class UserApi extends BaseAPI { method: 'PUT', headers, body: body, - progressSubscriber: opts?.progressSubscriber, }, opts?.responseOpts); }; diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 8df667fda24d..431f5d2e0471 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -92,7 +92,7 @@ export class BaseAPI { ); } - private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType, progressSubscriber }: RequestOpts): RequestArgs => { + private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType }: RequestOpts): RequestArgs => { // only add the queryString to the URL if there are query parameters. // this is done to avoid urls ending with a '?' character which buggy webservers // do not handle correctly sometimes. @@ -104,7 +104,6 @@ export class BaseAPI { headers, body: body instanceof FormData ? body : JSON.stringify(body), responseType: responseType ?? 'json', - progressSubscriber, }; } @@ -160,7 +159,6 @@ export interface RequestOpts extends AjaxRequest { headers?: HttpHeaders; body?: HttpBody; responseType?: 'json' | 'blob' | 'arraybuffer' | 'text'; - progressSubscriber?: Subscriber; } export interface ResponseOpts { @@ -168,7 +166,6 @@ export interface ResponseOpts { } export interface OperationOpts { - progressSubscriber?: Subscriber; responseOpts?: ResponseOpts; } @@ -177,15 +174,13 @@ export interface RawAjaxResponse extends AjaxResponse { response: T; } -export const encodeURI = (value: any) => encodeURIComponent(String(value)); +export const encodeURI = (value: any) => encodeURIComponent(`${value}`); -const queryString = (params: HttpQuery): string => Object.keys(params) - .map((key) => { - const value = params[key]; - return (value instanceof Array) - ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') - : `${encodeURI(key)}=${encodeURI(value)}`; - }) +const queryString = (params: HttpQuery): string => Object.entries(params) + .map(([key, value]) => value instanceof Array + ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') + : `${encodeURI(key)}=${encodeURI(value)}` + ) .join('&'); // alias fallback for not being a breaking change diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/tsconfig.json b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/tsconfig.json index d65f2a95afc1..59a60838a05c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/tsconfig.json +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/tsconfig.json @@ -8,7 +8,8 @@ "rootDir": ".", "lib": [ "es6", - "dom" + "dom", + "es2017" ], "typeRoots": [ "node_modules/@types" diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/.gitignore b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.gitignore similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/.gitignore rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.gitignore diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/.openapi-generator-ignore b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.openapi-generator-ignore similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/.openapi-generator-ignore rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.openapi-generator-ignore diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/.openapi-generator/VERSION b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.openapi-generator/VERSION similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/.openapi-generator/VERSION rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/.openapi-generator/VERSION diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/PetApi.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/PetApi.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/PetApi.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/StoreApi.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/StoreApi.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/UserApi.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/UserApi.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/index.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/index.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/index.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/apis/index.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/index.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/index.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/index.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/index.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/ApiResponse.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/ApiResponse.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/ApiResponse.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/ApiResponse.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Category.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Category.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Category.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Category.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Order.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Order.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Order.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Order.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Pet.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Pet.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Pet.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Pet.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Tag.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Tag.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/Tag.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/Tag.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/User.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/User.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/User.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/User.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/index.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/index.ts similarity index 100% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/models/index.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/models/index.ts diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts similarity index 94% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts index 8df667fda24d..80a78cbc2cac 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts @@ -177,15 +177,13 @@ export interface RawAjaxResponse extends AjaxResponse { response: T; } -export const encodeURI = (value: any) => encodeURIComponent(String(value)); - -const queryString = (params: HttpQuery): string => Object.keys(params) - .map((key) => { - const value = params[key]; - return (value instanceof Array) - ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') - : `${encodeURI(key)}=${encodeURI(value)}`; - }) +export const encodeURI = (value: any) => encodeURIComponent(`${value}`); + +const queryString = (params: HttpQuery): string => Object.entries(params) + .map(([key, value]) => value instanceof Array + ? value.map((val) => `${encodeURI(key)}=${encodeURI(val)}`).join('&') + : `${encodeURI(key)}=${encodeURI(value)}` + ) .join('&'); // alias fallback for not being a breaking change diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/tsconfig.json b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/tsconfig.json similarity index 91% rename from samples/client/petstore/typescript-rxjs/builds/with-interfaces/tsconfig.json rename to samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/tsconfig.json index d65f2a95afc1..59a60838a05c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/tsconfig.json +++ b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/tsconfig.json @@ -8,7 +8,8 @@ "rootDir": ".", "lib": [ "es6", - "dom" + "dom", + "es2017" ], "typeRoots": [ "node_modules/@types" From c22297b46c2e3d1e9e1daa763ff7cfa796fb8abe Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Sat, 20 Jun 2020 09:23:02 +0200 Subject: [PATCH 21/22] feat(typescript-rxjs): adjust sample generation, regenerate samples --- ...script-rxjs-with-progress-subscriber.yaml} | 4 +- bin/typescript-rxjs-petstore-all.sh | 6 - ...-rxjs-petstore-with-progress-subscriber.sh | 32 --- bin/windows/typescript-rxjs-petstore-all.bat | 6 - ...rxjs-petstore-with-progress-subscriber.bat | 12 -- .../typescript-rxjs/builds/default/runtime.ts | 4 +- .../builds/es6-target/runtime.ts | 4 +- .../builds/with-interfaces/apis/StoreApi.ts | 97 --------- .../builds/with-interfaces/apis/UserApi.ts | 184 ------------------ .../builds/with-npm-version/runtime.ts | 4 +- .../with-progress-subscriber/runtime.ts | 4 +- 11 files changed, 10 insertions(+), 347 deletions(-) rename bin/configs/{typescript-rxjs-with-interfaces.yaml => typescript-rxjs-with-progress-subscriber.yaml} (52%) delete mode 100755 bin/typescript-rxjs-petstore-all.sh delete mode 100755 bin/typescript-rxjs-petstore-with-progress-subscriber.sh delete mode 100644 bin/windows/typescript-rxjs-petstore-all.bat delete mode 100644 bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat delete mode 100644 samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts delete mode 100644 samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts diff --git a/bin/configs/typescript-rxjs-with-interfaces.yaml b/bin/configs/typescript-rxjs-with-progress-subscriber.yaml similarity index 52% rename from bin/configs/typescript-rxjs-with-interfaces.yaml rename to bin/configs/typescript-rxjs-with-progress-subscriber.yaml index a5ef676abc7d..f20df704bec7 100644 --- a/bin/configs/typescript-rxjs-with-interfaces.yaml +++ b/bin/configs/typescript-rxjs-with-progress-subscriber.yaml @@ -1,5 +1,5 @@ generatorName: typescript-rxjs -outputDir: samples/client/petstore/typescript-rxjs/builds/with-interfaces +outputDir: samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml additionalProperties: - withInterfaces: "true" + withProgressSubscriber: "true" diff --git a/bin/typescript-rxjs-petstore-all.sh b/bin/typescript-rxjs-petstore-all.sh deleted file mode 100755 index c025cb638899..000000000000 --- a/bin/typescript-rxjs-petstore-all.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -./bin/typescript-rxjs-petstore-target-es6.sh -./bin/typescript-rxjs-petstore-with-npm-version.sh -./bin/typescript-rxjs-petstore-with-progress-subscriber.sh -./bin/typescript-rxjs-petstore.sh diff --git a/bin/typescript-rxjs-petstore-with-progress-subscriber.sh b/bin/typescript-rxjs-petstore-with-progress-subscriber.sh deleted file mode 100755 index 45bfe05d7f84..000000000000 --- a/bin/typescript-rxjs-petstore-with-progress-subscriber.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -SCRIPT="$0" -echo "# START SCRIPT: $SCRIPT" - -while [ -h "$SCRIPT" ] ; do - ls=`ls -ld "$SCRIPT"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - SCRIPT="$link" - else - SCRIPT=`dirname "$SCRIPT"`/"$link" - fi -done - -if [ ! -d "${APP_DIR}" ]; then - APP_DIR=`dirname "$SCRIPT"`/.. - APP_DIR=`cd "${APP_DIR}"; pwd` -fi - -executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar" - -if [ ! -f "$executable" ] -then - mvn -B clean package -fi - -# if you've executed sbt assembly previously it will use that instead. -export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g typescript-rxjs -o samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber --additional-properties withProgressSubscriber=true $@" - -java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/typescript-rxjs-petstore-all.bat b/bin/windows/typescript-rxjs-petstore-all.bat deleted file mode 100644 index 88cb65bfb1c8..000000000000 --- a/bin/windows/typescript-rxjs-petstore-all.bat +++ /dev/null @@ -1,6 +0,0 @@ -@ECHO OFF - -call bin\windows\typescript-rxjs-petstore.bat -call bin\windows\typescript-rxjs-petstore-target-es6.bat -call bin\windows\typescript-rxjs-petstore-with-npm-version.bat -call bin\windows\typescript-rxjs-petstore-with-progress-subscriber.bat diff --git a/bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat b/bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat deleted file mode 100644 index f650edce01eb..000000000000 --- a/bin/windows/typescript-rxjs-petstore-with-progress-subscriber.bat +++ /dev/null @@ -1,12 +0,0 @@ -@ECHO OFF - -set executable=.\modules\openapi-generator-cli\target\openapi-generator-cli.jar - -If Not Exist %executable% ( - mvn clean package -) - -REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g typescript-rxjs -o samples\client\petstore\typescript-rxjs\builds\with-progress-subscriber --additional-properties withProgressSubscriber=true - -java %JAVA_OPTS% -jar %executable% %ags% diff --git a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts index 79db065d5c5f..b93291601c1c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/default/runtime.ts @@ -66,7 +66,7 @@ export class BaseAPI { this.middleware = configuration.middleware; } - withMiddleware = (middlewares: Middleware[]) => { + withMiddleware = (middlewares: Middleware[]): this => { const next = this.clone(); next.middleware = next.middleware.concat(middlewares); return next; @@ -127,7 +127,7 @@ export class BaseAPI { * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ - private clone = (): BaseAPI => + private clone = (): this => Object.assign(Object.create(Object.getPrototypeOf(this)), this); } diff --git a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts index 79db065d5c5f..b93291601c1c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/es6-target/runtime.ts @@ -66,7 +66,7 @@ export class BaseAPI { this.middleware = configuration.middleware; } - withMiddleware = (middlewares: Middleware[]) => { + withMiddleware = (middlewares: Middleware[]): this => { const next = this.clone(); next.middleware = next.middleware.concat(middlewares); return next; @@ -127,7 +127,7 @@ export class BaseAPI { * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ - private clone = (): BaseAPI => + private clone = (): this => Object.assign(Object.create(Object.getPrototypeOf(this)), this); } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts deleted file mode 100644 index 8ce04d16aa04..000000000000 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/StoreApi.ts +++ /dev/null @@ -1,97 +0,0 @@ -// tslint:disable -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, throwIfNullOrUndefined, encodeURI } from '../runtime'; -import { - Order, -} from '../models'; - -export interface DeleteOrderRequest { - orderId: string; -} - -export interface GetOrderByIdRequest { - orderId: number; -} - -export interface PlaceOrderRequest { - body: Order; -} - -/** - * no description - */ -export class StoreApi extends BaseAPI { - - /** - * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - * Delete purchase order by ID - */ - deleteOrder = ({ orderId }: DeleteOrderRequest): Observable => { - throwIfNullOrUndefined(orderId, 'orderId', 'deleteOrder'); - - return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), - method: 'DELETE', - }); - }; - - /** - * Returns a map of status codes to quantities - * Returns pet inventories by status - */ - getInventory = (): Observable<{ [key: string]: number; }> => { - const headers: HttpHeaders = { - ...(this.configuration.apiKey && { 'api_key': this.configuration.apiKey('api_key') }), // api_key authentication - }; - - return this.request<{ [key: string]: number; }>({ - path: '/store/inventory', - method: 'GET', - headers, - }); - }; - - /** - * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions - * Find purchase order by ID - */ - getOrderById = ({ orderId }: GetOrderByIdRequest): Observable => { - throwIfNullOrUndefined(orderId, 'orderId', 'getOrderById'); - - return this.request({ - path: '/store/order/{orderId}'.replace('{orderId}', encodeURI(orderId)), - method: 'GET', - }); - }; - - /** - * Place an order for a pet - */ - placeOrder = ({ body }: PlaceOrderRequest): Observable => { - throwIfNullOrUndefined(body, 'body', 'placeOrder'); - - const headers: HttpHeaders = { - 'Content-Type': 'application/json', - }; - - return this.request({ - path: '/store/order', - method: 'POST', - headers, - body: body, - }); - }; - -} diff --git a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts b/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts deleted file mode 100644 index a223874786eb..000000000000 --- a/samples/client/petstore/typescript-rxjs/builds/with-interfaces/apis/UserApi.ts +++ /dev/null @@ -1,184 +0,0 @@ -// tslint:disable -/** - * OpenAPI Petstore - * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. - * - * The version of the OpenAPI document: 1.0.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { Observable } from 'rxjs'; -import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI } from '../runtime'; -import { - User, -} from '../models'; - -export interface CreateUserRequest { - body: User; -} - -export interface CreateUsersWithArrayInputRequest { - body: Array; -} - -export interface CreateUsersWithListInputRequest { - body: Array; -} - -export interface DeleteUserRequest { - username: string; -} - -export interface GetUserByNameRequest { - username: string; -} - -export interface LoginUserRequest { - username: string; - password: string; -} - -export interface UpdateUserRequest { - username: string; - body: User; -} - -/** - * no description - */ -export class UserApi extends BaseAPI { - - /** - * This can only be done by the logged in user. - * Create user - */ - createUser = ({ body }: CreateUserRequest): Observable => { - throwIfNullOrUndefined(body, 'body', 'createUser'); - - const headers: HttpHeaders = { - 'Content-Type': 'application/json', - }; - - return this.request({ - path: '/user', - method: 'POST', - headers, - body: body, - }); - }; - - /** - * Creates list of users with given input array - */ - createUsersWithArrayInput = ({ body }: CreateUsersWithArrayInputRequest): Observable => { - throwIfNullOrUndefined(body, 'body', 'createUsersWithArrayInput'); - - const headers: HttpHeaders = { - 'Content-Type': 'application/json', - }; - - return this.request({ - path: '/user/createWithArray', - method: 'POST', - headers, - body: body, - }); - }; - - /** - * Creates list of users with given input array - */ - createUsersWithListInput = ({ body }: CreateUsersWithListInputRequest): Observable => { - throwIfNullOrUndefined(body, 'body', 'createUsersWithListInput'); - - const headers: HttpHeaders = { - 'Content-Type': 'application/json', - }; - - return this.request({ - path: '/user/createWithList', - method: 'POST', - headers, - body: body, - }); - }; - - /** - * This can only be done by the logged in user. - * Delete user - */ - deleteUser = ({ username }: DeleteUserRequest): Observable => { - throwIfNullOrUndefined(username, 'username', 'deleteUser'); - - return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), - method: 'DELETE', - }); - }; - - /** - * Get user by user name - */ - getUserByName = ({ username }: GetUserByNameRequest): Observable => { - throwIfNullOrUndefined(username, 'username', 'getUserByName'); - - return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), - method: 'GET', - }); - }; - - /** - * Logs user into the system - */ - loginUser = ({ username, password }: LoginUserRequest): Observable => { - throwIfNullOrUndefined(username, 'username', 'loginUser'); - throwIfNullOrUndefined(password, 'password', 'loginUser'); - - const query: HttpQuery = { // required parameters are used directly since they are already checked by throwIfNullOrUndefined - 'username': username, - 'password': password, - }; - - return this.request({ - path: '/user/login', - method: 'GET', - query, - }); - }; - - /** - * Logs out current logged in user session - */ - logoutUser = (): Observable => { - return this.request({ - path: '/user/logout', - method: 'GET', - }); - }; - - /** - * This can only be done by the logged in user. - * Updated user - */ - updateUser = ({ username, body }: UpdateUserRequest): Observable => { - throwIfNullOrUndefined(username, 'username', 'updateUser'); - throwIfNullOrUndefined(body, 'body', 'updateUser'); - - const headers: HttpHeaders = { - 'Content-Type': 'application/json', - }; - - return this.request({ - path: '/user/{username}'.replace('{username}', encodeURI(username)), - method: 'PUT', - headers, - body: body, - }); - }; - -} diff --git a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts index 79db065d5c5f..b93291601c1c 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-npm-version/runtime.ts @@ -66,7 +66,7 @@ export class BaseAPI { this.middleware = configuration.middleware; } - withMiddleware = (middlewares: Middleware[]) => { + withMiddleware = (middlewares: Middleware[]): this => { const next = this.clone(); next.middleware = next.middleware.concat(middlewares); return next; @@ -127,7 +127,7 @@ export class BaseAPI { * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ - private clone = (): BaseAPI => + private clone = (): this => Object.assign(Object.create(Object.getPrototypeOf(this)), this); } diff --git a/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts index 4f3e09c7dfd5..2fb0ef154ab6 100644 --- a/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts +++ b/samples/client/petstore/typescript-rxjs/builds/with-progress-subscriber/runtime.ts @@ -66,7 +66,7 @@ export class BaseAPI { this.middleware = configuration.middleware; } - withMiddleware = (middlewares: Middleware[]) => { + withMiddleware = (middlewares: Middleware[]): this => { const next = this.clone(); next.middleware = next.middleware.concat(middlewares); return next; @@ -128,7 +128,7 @@ export class BaseAPI { * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ - private clone = (): BaseAPI => + private clone = (): this => Object.assign(Object.create(Object.getPrototypeOf(this)), this); } From 68292d76d8b61248cbdd48a424859496625fc040 Mon Sep 17 00:00:00 2001 From: Bernd Hacker Date: Sat, 20 Jun 2020 11:37:00 +0200 Subject: [PATCH 22/22] docs(typescript-rxjs): regenerate docs --- docs/generators/typescript-rxjs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/generators/typescript-rxjs.md b/docs/generators/typescript-rxjs.md index e48d7e4827ca..270ce2ad7e4e 100644 --- a/docs/generators/typescript-rxjs.md +++ b/docs/generators/typescript-rxjs.md @@ -21,7 +21,7 @@ sidebar_label: typescript-rxjs |sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true| |sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true| |supportsES6|Generate code that conforms to ES6.| |false| -|withInterfaces|Setting this property to true will generate interfaces next to the default class implementations.| |false| +|withProgressSubscriber|Setting this property to true will generate API controller methods with support for subscribing to request progress.| |false| ## IMPORT MAPPING