Skip to content

Commit f0eb4ec

Browse files
committed
get rid of cancelable promise
1 parent 04d9621 commit f0eb4ec

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+9244
-35
lines changed

dist/index.js

Lines changed: 7476 additions & 1 deletion
Large diffs are not rendered by default.

src/templates/core/BaseHttpRequest.hbs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import type { ApiRequestOptions } from './ApiRequestOptions';
88
import type { OpenAPIConfig } from './OpenAPI';
99
{{else}}
1010
import type { ApiRequestOptions } from './ApiRequestOptions';
11-
import type { CancelablePromise } from './CancelablePromise';
1211
import type { OpenAPIConfig } from './OpenAPI';
1312
{{/equals}}
1413

@@ -26,6 +25,6 @@ export abstract class BaseHttpRequest {
2625
{{#equals @root.httpClient 'angular'}}
2726
public abstract request<T>(options: ApiRequestOptions): Observable<T>;
2827
{{else}}
29-
public abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>;
28+
public abstract request<T>(options: ApiRequestOptions): Promise<T>;
3029
{{/equals}}
3130
}

src/templates/core/HttpRequest.hbs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { request as __request } from './request';
1313
{{else}}
1414
import type { ApiRequestOptions } from './ApiRequestOptions';
1515
import { BaseHttpRequest } from './BaseHttpRequest';
16-
import type { CancelablePromise } from './CancelablePromise';
1716
import type { OpenAPIConfig } from './OpenAPI';
1817
import { request as __request } from './request';
1918
{{/equals}}
@@ -51,10 +50,10 @@ export class {{httpRequest}} extends BaseHttpRequest {
5150
/**
5251
* Request method
5352
* @param options The request options from the service
54-
* @returns CancelablePromise<T>
53+
* @returns Promise<T>
5554
* @throws ApiError
5655
*/
57-
public override request<T>(options: ApiRequestOptions): CancelablePromise<T> {
56+
public override request<T>(options: ApiRequestOptions): Promise<T> {
5857
return __request(this.config, options);
5958
}
6059
{{/equals}}

src/templates/core/fetch/request.hbs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import { ApiError } from './ApiError';
44
import type { ApiRequestOptions } from './ApiRequestOptions';
55
import type { ApiResult } from './ApiResult';
6-
import { CancelablePromise } from './CancelablePromise';
7-
import type { OnCancel } from './CancelablePromise';
86
import type { OpenAPIConfig } from './OpenAPI';
97

108
{{>functions/isDefined}}
@@ -59,34 +57,32 @@ import type { OpenAPIConfig } from './OpenAPI';
5957
* Request method
6058
* @param config The OpenAPI configuration object
6159
* @param options The request options from the service
62-
* @returns CancelablePromise<T>
60+
* @returns Promise<T>
6361
* @throws ApiError
6462
*/
65-
export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> => {
66-
return new CancelablePromise(async (resolve, reject, onCancel) => {
63+
export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): Promise<T> => {
64+
return new Promise(async (resolve, reject) => {
6765
try {
6866
const url = getUrl(config, options);
6967
const formData = getFormData(options);
7068
const body = getRequestBody(options);
7169
const headers = await getHeaders(config, options);
7270

73-
if (!onCancel.isCancelled) {
74-
const response = await sendRequest(config, options, url, body, formData, headers, onCancel);
75-
const responseBody = await getResponseBody(response);
76-
const responseHeader = getResponseHeader(response, options.responseHeader);
71+
const response = await sendRequest(config, options, url, body, formData, headers);
72+
const responseBody = await getResponseBody(response);
73+
const responseHeader = getResponseHeader(response, options.responseHeader);
7774

78-
const result: ApiResult = {
79-
url,
80-
ok: response.ok,
81-
status: response.status,
82-
statusText: response.statusText,
83-
body: responseHeader ?? responseBody,
84-
};
75+
const result: ApiResult = {
76+
url,
77+
ok: response.ok,
78+
status: response.status,
79+
statusText: response.statusText,
80+
body: responseHeader ?? responseBody,
81+
};
8582

86-
catchErrorCodes(options, result);
83+
catchErrorCodes(options, result);
8784

88-
resolve(result.body);
89-
}
85+
resolve(result.body);
9086
} catch (error) {
9187
reject(error);
9288
}

src/templates/core/fetch/sendRequest.hbs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,16 @@ export const sendRequest = async (
55
body: any,
66
formData: FormData | undefined,
77
headers: Headers,
8-
onCancel: OnCancel
98
): Promise<Response> => {
10-
const controller = new AbortController();
11-
129
const request: RequestInit = {
1310
headers,
1411
body: body ?? formData,
1512
method: options.method,
16-
signal: controller.signal,
1713
};
1814

1915
if (config.WITH_CREDENTIALS) {
2016
request.credentials = config.CREDENTIALS;
2117
}
2218

23-
onCancel(() => controller.abort());
24-
2519
return await fetch(url, request);
2620
};

src/templates/exportService.hbs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import type { {{{this}}} } from '../models/{{{this}}}';
1818

1919
{{/if}}
2020
{{#notEquals @root.httpClient 'angular'}}
21-
import type { CancelablePromise } from '../core/CancelablePromise';
2221
{{/notEquals}}
2322
{{#if @root.exportClient}}
2423
{{#equals @root.httpClient 'angular'}}
@@ -75,15 +74,15 @@ export class {{{name}}}{{{@root.postfix}}} {
7574
public {{{name}}}({{>parameters}}): Observable<{{>result}}> {
7675
return this.httpRequest.request({
7776
{{else}}
78-
public {{{name}}}({{>parameters}}): CancelablePromise<{{>result}}> {
77+
public {{{name}}}({{>parameters}}): Promise<{{>result}}> {
7978
return this.httpRequest.request({
8079
{{/equals}}
8180
{{else}}
8281
{{#equals @root.httpClient 'angular'}}
8382
public {{{name}}}({{>parameters}}): Observable<{{>result}}> {
8483
return __request(OpenAPI, this.http, {
8584
{{else}}
86-
public static {{{name}}}({{>parameters}}): CancelablePromise<{{>result}}> {
85+
public static {{{name}}}({{>parameters}}): Promise<{{>result}}> {
8786
return __request(OpenAPI, {
8887
{{/equals}}
8988
{{/if}}

src/templates/index.hbs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ export { ApiError } from './core/ApiError';
99
{{#if @root.exportClient}}
1010
export { BaseHttpRequest } from './core/BaseHttpRequest';
1111
{{/if}}
12-
export { CancelablePromise, CancelError } from './core/CancelablePromise';
1312
export { OpenAPI } from './core/OpenAPI';
1413
export type { OpenAPIConfig } from './core/OpenAPI';
1514
{{/if}}

tester/PlutoCoreSDK.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/* generated using openapi-typescript-codegen -- do not edit */
2+
/* istanbul ignore file */
3+
/* tslint:disable */
4+
/* eslint-disable */
5+
import type { BaseHttpRequest } from './core/BaseHttpRequest';
6+
import type { OpenAPIConfig } from './core/OpenAPI';
7+
import { FetchHttpRequest } from './core/FetchHttpRequest';
8+
import { AssetsService } from './services/AssetsService';
9+
import { MembersService } from './services/MembersService';
10+
import { StampCardsService } from './services/StampCardsService';
11+
import { StampCardTypesService } from './services/StampCardTypesService';
12+
import { TenantsService } from './services/TenantsService';
13+
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
14+
export class PlutoCoreSDK {
15+
public readonly assets: AssetsService;
16+
public readonly members: MembersService;
17+
public readonly stampCards: StampCardsService;
18+
public readonly stampCardTypes: StampCardTypesService;
19+
public readonly tenants: TenantsService;
20+
public readonly request: BaseHttpRequest;
21+
constructor(config?: Partial<OpenAPIConfig>, HttpRequest: HttpRequestConstructor = FetchHttpRequest) {
22+
this.request = new HttpRequest({
23+
BASE: config?.BASE ?? '',
24+
VERSION: config?.VERSION ?? '0.0.1',
25+
WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,
26+
CREDENTIALS: config?.CREDENTIALS ?? 'include',
27+
TOKEN: config?.TOKEN,
28+
USERNAME: config?.USERNAME,
29+
PASSWORD: config?.PASSWORD,
30+
HEADERS: config?.HEADERS,
31+
ENCODE_PATH: config?.ENCODE_PATH,
32+
});
33+
this.assets = new AssetsService(this.request);
34+
this.members = new MembersService(this.request);
35+
this.stampCards = new StampCardsService(this.request);
36+
this.stampCardTypes = new StampCardTypesService(this.request);
37+
this.tenants = new TenantsService(this.request);
38+
}
39+
}
40+

tester/core/ApiError.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/* generated using openapi-typescript-codegen -- do not edit */
2+
/* istanbul ignore file */
3+
/* tslint:disable */
4+
/* eslint-disable */
5+
import type { ApiRequestOptions } from './ApiRequestOptions';
6+
import type { ApiResult } from './ApiResult';
7+
8+
export class ApiError extends Error {
9+
public readonly url: string;
10+
public readonly status: number;
11+
public readonly statusText: string;
12+
public readonly body: any;
13+
public readonly request: ApiRequestOptions;
14+
15+
constructor(request: ApiRequestOptions, response: ApiResult, message: string) {
16+
super(message);
17+
18+
this.name = 'ApiError';
19+
this.url = response.url;
20+
this.status = response.status;
21+
this.statusText = response.statusText;
22+
this.body = response.body;
23+
this.request = request;
24+
}
25+
}

tester/core/ApiRequestOptions.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/* generated using openapi-typescript-codegen -- do not edit */
2+
/* istanbul ignore file */
3+
/* tslint:disable */
4+
/* eslint-disable */
5+
export type ApiRequestOptions = {
6+
readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';
7+
readonly url: string;
8+
readonly path?: Record<string, any>;
9+
readonly cookies?: Record<string, any>;
10+
readonly headers?: Record<string, any>;
11+
readonly query?: Record<string, any>;
12+
readonly formData?: Record<string, any>;
13+
readonly body?: any;
14+
readonly mediaType?: string;
15+
readonly responseHeader?: string;
16+
readonly errors?: Record<number, string>;
17+
};

0 commit comments

Comments
 (0)