From 6b7efd152356e545c1b2cb8fd6ccac23b613fad7 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Tue, 19 Oct 2021 21:47:56 +0200 Subject: [PATCH] - Removed need for abort controller in axios implementation - Fixed export of cancelable promise for custom requests - --- jest.config.js | 4 ++-- src/templates/core/axios/request.hbs | 1 - src/templates/core/axios/sendRequest.hbs | 6 +++--- src/templates/index.hbs | 2 +- test/__snapshots__/index.spec.js.snap | 4 ++-- test/e2e/v2.axios.spec.js | 2 +- test/e2e/v3.axios.spec.js | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/jest.config.js b/jest.config.js index 9fe8f27b..6258cce1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -20,13 +20,13 @@ module.exports = { testMatch: [ '/test/e2e/v2.fetch.spec.js', '/test/e2e/v2.xhr.spec.js', - '/test/e2e/v2.axios.spec.js', '/test/e2e/v2.node.spec.js', + '/test/e2e/v2.axios.spec.js', '/test/e2e/v2.babel.spec.js', '/test/e2e/v3.fetch.spec.js', '/test/e2e/v3.xhr.spec.js', - '/test/e2e/v3.axios.spec.js', '/test/e2e/v3.node.spec.js', + '/test/e2e/v3.axios.spec.js', '/test/e2e/v3.babel.spec.js', ], }, diff --git a/src/templates/core/axios/request.hbs b/src/templates/core/axios/request.hbs index 73b355a6..8c020f2d 100644 --- a/src/templates/core/axios/request.hbs +++ b/src/templates/core/axios/request.hbs @@ -1,6 +1,5 @@ {{>header}} -import { AbortController } from 'abort-controller'; import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; import FormData from 'form-data'; diff --git a/src/templates/core/axios/sendRequest.hbs b/src/templates/core/axios/sendRequest.hbs index 3f47a12d..ffb83708 100644 --- a/src/templates/core/axios/sendRequest.hbs +++ b/src/templates/core/axios/sendRequest.hbs @@ -1,5 +1,5 @@ async function sendRequest(options: ApiRequestOptions, url: string, onCancel: (cancelHandler: () => void) => void): Promise> { - const controller = new AbortController(); + const source = axios.CancelToken.source(); const formData = options.formData && getFormData(options.formData); const data = formData || options.body; @@ -8,10 +8,10 @@ async function sendRequest(options: ApiRequestOptions, url: string, onCancel: (c data, method: options.method, headers: await getHeaders(options, formData), - signal: controller.signal, + cancelToken: source.token, }; - onCancel(() => controller.abort()); + onCancel(() => source.cancel('The user aborted a request.')); return await axios.request(config); } diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 0f9df8af..8be63d35 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -2,7 +2,7 @@ {{#if @root.exportCore}} export { ApiError } from './core/ApiError'; -export type { CancelablePromise } from './core/CancelablePromise'; +export { CancelablePromise } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; {{/if}} {{#if @root.exportModels}} diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 8c3b9065..a2674163 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -430,7 +430,7 @@ exports[`v2 should generate: ./test/generated/v2/index.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ export { ApiError } from './core/ApiError'; -export type { CancelablePromise } from './core/CancelablePromise'; +export { CancelablePromise } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { ArrayWithArray } from './models/ArrayWithArray'; @@ -2899,7 +2899,7 @@ exports[`v3 should generate: ./test/generated/v3/index.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ export { ApiError } from './core/ApiError'; -export type { CancelablePromise } from './core/CancelablePromise'; +export { CancelablePromise } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { ArrayWithArray } from './models/ArrayWithArray'; diff --git a/test/e2e/v2.axios.spec.js b/test/e2e/v2.axios.spec.js index a15e083c..7aae313c 100644 --- a/test/e2e/v2.axios.spec.js +++ b/test/e2e/v2.axios.spec.js @@ -45,7 +45,7 @@ describe('v2.node', () => { }, 10); await promise; } catch (e) { - expect(e.message).toContain('canceled'); + expect(e.message).toContain('The user aborted a request.'); } }); }); diff --git a/test/e2e/v3.axios.spec.js b/test/e2e/v3.axios.spec.js index ee9a25d8..94069405 100644 --- a/test/e2e/v3.axios.spec.js +++ b/test/e2e/v3.axios.spec.js @@ -64,7 +64,7 @@ describe('v3.node', () => { }, 10); await promise; } catch (e) { - expect(e.message).toContain('canceled'); + expect(e.message).toContain('The user aborted a request.'); } }); });