Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// 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, RawAjaxResponse } from '../runtime';
import type { Observable } from 'rxjs';
import type { AjaxResponse } from 'rxjs/ajax';
import { BaseAPI{{#hasRequiredParams}}, throwIfNullOrUndefined{{/hasRequiredParams}}{{#hasPathParams}}, encodeURI{{/hasPathParams}}{{#hasListContainers}}, COLLECTION_FORMATS{{/hasListContainers}} } from '../runtime';
import type { OperationOpts{{#hasHttpHeaders}}, HttpHeaders{{/hasHttpHeaders}}{{#hasQueryParams}}, HttpQuery{{/hasQueryParams}} } from '../runtime';
{{#imports.0}}
import {
import type {
{{#imports}}
{{className}},
{{/imports}}
Expand Down Expand Up @@ -41,8 +43,8 @@ export class {{classname}} extends BaseAPI {
{{#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<OperationOpts, 'progressSubscriber'>): Observable<{{{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}}void | RawAjaxResponse<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}}{{{returnType}}} | RawAjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | RawAjaxResponse<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}}AjaxResponse<{{{.}}}>{{/returnType}}{{^returnType}}void | AjaxResponse<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}}{{{returnType}}} | AjaxResponse<{{{returnType}}}>{{/returnType}}{{^returnType}}void | AjaxResponse<void>{{/returnType}}> {
{{#hasParams}}
{{#allParams}}
{{#required}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#hasImports}}
import {
import type {
{{#imports}}
{{{.}}},
{{/imports}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#hasImports}}
import {
import type {
{{#imports}}
{{{.}}},
{{/imports}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{#hasImports}}
import {
import type {
{{#imports}}
{{{.}}},
{{/imports}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
"prepare": "npm run build"
},
"dependencies": {
"rxjs": "^6.3.3"
"rxjs": "^7.2.0"
},
"devDependencies": {
"typescript": "^3.7"
"typescript": "^4.0"
}{{#npmRepository}},{{/npmRepository}}
{{#npmRepository}}
"publishConfig": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
{{! helper to output the alias of a parameter if provided and to not clutter the main template }}
{{! helper to output the alias of a parameter if provided and to not clutter the main template }}
{{#vendorExtensions.x-param-name-alternative}}{{vendorExtensions.x-param-name-alternative}}{{/vendorExtensions.x-param-name-alternative}}{{^vendorExtensions.x-param-name-alternative}}{{paramName}}{{/vendorExtensions.x-param-name-alternative}}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
// tslint:disable
{{>licenseInfo}}
import { Observable, of{{#withProgressSubscriber}}, Subscriber{{/withProgressSubscriber}} } from 'rxjs';
import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax';
import { of } from 'rxjs';
import type { Observable{{#withProgressSubscriber}}, Subscriber{{/withProgressSubscriber}} } from 'rxjs';
import { ajax } from 'rxjs/ajax';
import type { AjaxConfig, AjaxResponse } from 'rxjs/ajax';
import { map, concatMap } from 'rxjs/operators';
import { servers } from './servers';

Expand Down Expand Up @@ -69,9 +71,9 @@ export class BaseAPI {
this.withMiddleware(postMiddlewares.map((post) => ({ post })));

protected request<T>(requestOpts: RequestOpts): Observable<T>
protected request<T>(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable<RawAjaxResponse<T>>
protected request<T>(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable<T | RawAjaxResponse<T>> {
return this.rxjsRequest(this.createRequestArgs(requestOpts)).pipe(
protected request<T>(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable<AjaxResponse<T>>
protected request<T>(requestOpts: RequestOpts, responseOpts?: ResponseOpts): Observable<T | AjaxResponse<T>> {
return this.rxjsRequest<T>(this.createRequestArgs(requestOpts)).pipe(
map((res) => {
const { status, response } = res;
if (status >= 200 && status < 300) {
Expand All @@ -82,7 +84,7 @@ export class BaseAPI {
);
}

private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType{{#withProgressSubscriber}}, progressSubscriber{{/withProgressSubscriber}} }: RequestOpts): RequestArgs => {
private createRequestArgs = ({ url: baseUrl, query, method, headers, body, responseType{{#withProgressSubscriber}}, progressSubscriber{{/withProgressSubscriber}} }: RequestOpts): AjaxConfig => {
// 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.
Expand All @@ -100,14 +102,14 @@ export class BaseAPI {
};
}

private rxjsRequest = (params: RequestArgs): Observable<AjaxResponse> =>
private rxjsRequest = <T>(params: AjaxConfig): Observable<AjaxResponse<T>> =>
of(params).pipe(
map((request) => {
this.middleware.filter((item) => item.pre).forEach((mw) => (request = mw.pre!(request)));
return request;
}),
concatMap((args) =>
ajax(args).pipe(
ajax<T>(args).pipe(
map((response) => {
this.middleware.filter((item) => item.post).forEach((mw) => (response = mw.post!(response)));
return response;
Expand Down Expand Up @@ -145,13 +147,13 @@ export type HttpHeaders = { [key: string]: string };
export type HttpQuery = Partial<{ [key: string]: string | number | null | boolean | Array<string | number | null | boolean> }>; // partial is needed for strict mode
export type HttpBody = Json | FormData;

export interface RequestOpts extends AjaxRequest {
export interface RequestOpts extends AjaxConfig {
// TODO: replace custom 'query' prop with 'queryParams'
query?: HttpQuery; // additional prop
// the following props have improved types over AjaxRequest
method: HttpMethod;
headers?: HttpHeaders;
body?: HttpBody;
responseType?: 'json' | 'blob' | 'arraybuffer' | 'text';
{{#withProgressSubscriber}}
progressSubscriber?: Subscriber<ProgressEvent>;
{{/withProgressSubscriber}}
Expand All @@ -168,11 +170,6 @@ export interface OperationOpts {
responseOpts?: ResponseOpts;
}

// AjaxResponse with typed response
export interface RawAjaxResponse<T> extends AjaxResponse {
response: T;
}

export const encodeURI = (value: any) => encodeURIComponent(`${value}`);

const queryString = (params: HttpQuery): string => Object.entries(params)
Expand All @@ -182,29 +179,13 @@ const queryString = (params: HttpQuery): string => Object.entries(params)
)
.join('&');

// alias fallback for not being a breaking change
export const querystring = queryString;

/**
* @deprecated
*/
export const throwIfRequired = (params: {[key: string]: any}, key: string, nickname: string) => {
if (!params || params[key] == null) {
throw new RequiredError(`Required parameter ${key} was null or undefined when calling ${nickname}.`);
}
};

export const throwIfNullOrUndefined = (value: any, paramName: string, nickname: string) => {
if (value == null) {
throw new Error(`Parameter "${paramName}" was null or undefined when calling "${nickname}".`);
}
};

// alias for easier importing
export interface RequestArgs extends AjaxRequest {}
export interface ResponseArgs extends AjaxResponse {}

export interface Middleware {
pre?(request: RequestArgs): RequestArgs;
post?(response: ResponseArgs): ResponseArgs;
pre?(request: AjaxConfig): AjaxConfig;
post?(response: AjaxResponse<any>): AjaxResponse<any>;
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ export class ServerConfiguration<T extends { [key: string]: string }> {
}

public getConfiguration(): T {
return this.variableConfiguration
return this.variableConfiguration;
}

public getDescription(): string {
return this.description
return this.description;
}

/**
Expand All @@ -34,12 +34,12 @@ export class ServerConfiguration<T extends { [key: string]: string }> {
var re = new RegExp("{" + key + "}","g");
replacedUrl = replacedUrl.replace(re, this.variableConfiguration[key]);
}
return replacedUrl
return replacedUrl;
}
}

{{#servers}}
const server{{-index}} = new ServerConfiguration<{ {{#variables}} "{{name}}": {{#enumValues}}"{{.}}"{{^-last}} | {{/-last}}{{/enumValues}}{{^enumValues}}string{{/enumValues}}{{^-last}},{{/-last}} {{/variables}} }>("{{url}}", { {{#variables}} "{{name}}": "{{defaultValue}}" {{^-last}},{{/-last}}{{/variables}} }, "{{description}}")
const server{{-index}} = new ServerConfiguration<{ {{#variables}} "{{name}}": {{#enumValues}}"{{.}}"{{^-last}} | {{/-last}}{{/enumValues}}{{^enumValues}}string{{/enumValues}}{{^-last}},{{/-last}} {{/variables}} }>("{{url}}", { {{#variables}} "{{name}}": "{{defaultValue}}" {{^-last}},{{/-last}}{{/variables}} }, "{{description}}");
{{/servers}}

export const servers = [{{#servers}}server{{-index}}{{^-last}}, {{/-last}}{{/servers}}];
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@
* Do not edit the class manually.
*/

import { Observable } from 'rxjs';
import { BaseAPI, HttpHeaders, HttpQuery, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS, OperationOpts, RawAjaxResponse } from '../runtime';
import {
import type { Observable } from 'rxjs';
import type { AjaxResponse } from 'rxjs/ajax';
import { BaseAPI, throwIfNullOrUndefined, encodeURI, COLLECTION_FORMATS } from '../runtime';
import type { OperationOpts, HttpHeaders, HttpQuery } from '../runtime';
import type {
ApiResponse,
Pet,
} from '../models';
Expand Down Expand Up @@ -64,8 +66,8 @@ export class PetApi extends BaseAPI {
* Add a new pet to the store
*/
addPet({ body }: AddPetRequest): Observable<void>
addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>>
addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>> {
addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>>
addPet({ body }: AddPetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>> {
throwIfNullOrUndefined(body, 'body', 'addPet');

const headers: HttpHeaders = {
Expand All @@ -91,8 +93,8 @@ export class PetApi extends BaseAPI {
* Deletes a pet
*/
deletePet({ petId, apiKey }: DeletePetRequest): Observable<void>
deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>>
deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>> {
deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>>
deletePet({ petId, apiKey }: DeletePetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>> {
throwIfNullOrUndefined(petId, 'petId', 'deletePet');

const headers: HttpHeaders = {
Expand All @@ -118,8 +120,8 @@ export class PetApi extends BaseAPI {
* Finds Pets by status
*/
findPetsByStatus({ status }: FindPetsByStatusRequest): Observable<Array<Pet>>
findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable<RawAjaxResponse<Array<Pet>>>
findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable<Array<Pet> | RawAjaxResponse<Array<Pet>>> {
findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable<AjaxResponse<Array<Pet>>>
findPetsByStatus({ status }: FindPetsByStatusRequest, opts?: OperationOpts): Observable<Array<Pet> | AjaxResponse<Array<Pet>>> {
throwIfNullOrUndefined(status, 'status', 'findPetsByStatus');

const headers: HttpHeaders = {
Expand Down Expand Up @@ -149,8 +151,8 @@ export class PetApi extends BaseAPI {
* Finds Pets by tags
*/
findPetsByTags({ tags }: FindPetsByTagsRequest): Observable<Array<Pet>>
findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable<RawAjaxResponse<Array<Pet>>>
findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable<Array<Pet> | RawAjaxResponse<Array<Pet>>> {
findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable<AjaxResponse<Array<Pet>>>
findPetsByTags({ tags }: FindPetsByTagsRequest, opts?: OperationOpts): Observable<Array<Pet> | AjaxResponse<Array<Pet>>> {
throwIfNullOrUndefined(tags, 'tags', 'findPetsByTags');

const headers: HttpHeaders = {
Expand Down Expand Up @@ -180,8 +182,8 @@ export class PetApi extends BaseAPI {
* Find pet by ID
*/
getPetById({ petId }: GetPetByIdRequest): Observable<Pet>
getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable<RawAjaxResponse<Pet>>
getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable<Pet | RawAjaxResponse<Pet>> {
getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable<AjaxResponse<Pet>>
getPetById({ petId }: GetPetByIdRequest, opts?: OperationOpts): Observable<Pet | AjaxResponse<Pet>> {
throwIfNullOrUndefined(petId, 'petId', 'getPetById');

const headers: HttpHeaders = {
Expand All @@ -199,8 +201,8 @@ export class PetApi extends BaseAPI {
* Update an existing pet
*/
updatePet({ body }: UpdatePetRequest): Observable<void>
updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>>
updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>> {
updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>>
updatePet({ body }: UpdatePetRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>> {
throwIfNullOrUndefined(body, 'body', 'updatePet');

const headers: HttpHeaders = {
Expand All @@ -226,8 +228,8 @@ export class PetApi extends BaseAPI {
* Updates a pet in the store with form data
*/
updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest): Observable<void>
updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>>
updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable<void | RawAjaxResponse<void>> {
updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>>
updatePetWithForm({ petId, name, status }: UpdatePetWithFormRequest, opts?: OperationOpts): Observable<void | AjaxResponse<void>> {
throwIfNullOrUndefined(petId, 'petId', 'updatePetWithForm');

const headers: HttpHeaders = {
Expand Down Expand Up @@ -256,8 +258,8 @@ export class PetApi extends BaseAPI {
* uploads an image
*/
uploadFile({ petId, additionalMetadata, file }: UploadFileRequest): Observable<ApiResponse>
uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable<RawAjaxResponse<ApiResponse>>
uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable<ApiResponse | RawAjaxResponse<ApiResponse>> {
uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable<AjaxResponse<ApiResponse>>
uploadFile({ petId, additionalMetadata, file }: UploadFileRequest, opts?: OperationOpts): Observable<ApiResponse | AjaxResponse<ApiResponse>> {
throwIfNullOrUndefined(petId, 'petId', 'uploadFile');

const headers: HttpHeaders = {
Expand Down
Loading