From aabbd0c0412cf22ff741e3e9d1e61a53ef179bc3 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Tue, 21 Dec 2021 22:49:54 +0100 Subject: [PATCH] Patch got@11.8.2 to fix onCancel error --- patches/got+11.8.2.patch | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 patches/got+11.8.2.patch diff --git a/patches/got+11.8.2.patch b/patches/got+11.8.2.patch new file mode 100644 index 000000000..19cb1236d --- /dev/null +++ b/patches/got+11.8.2.patch @@ -0,0 +1,44 @@ +diff --git a/node_modules/got/dist/source/as-promise/index.js b/node_modules/got/dist/source/as-promise/index.js +index 9575c09..a00a014 100644 +--- a/node_modules/got/dist/source/as-promise/index.js ++++ b/node_modules/got/dist/source/as-promise/index.js +@@ -33,6 +33,7 @@ function asPromise(normalizedOptions) { + const promise = new PCancelable((resolve, reject, onCancel) => { + const makeRequest = (retryCount) => { + const request = new core_1.default(undefined, normalizedOptions); ++ let isResolved = false; + request.retryCount = retryCount; + request._noPipe = true; + onCancel(() => request.destroy()); +@@ -118,6 +119,7 @@ function asPromise(normalizedOptions) { + return; + } + globalResponse = response; ++ isResolved = true; + resolve(request.options.resolveBodyOnly ? response.body : response); + }); + const onError = (error) => { +@@ -127,9 +129,11 @@ function asPromise(normalizedOptions) { + const { options } = request; + if (error instanceof types_1.HTTPError && !options.throwHttpErrors) { + const { response } = error; ++ isResolved = true; + resolve(request.options.resolveBodyOnly ? response.body : response); + return; + } ++ isResolved = true; + reject(error); + }; + request.once('error', onError); +@@ -140,7 +144,10 @@ function asPromise(normalizedOptions) { + onError(error); + return; + } +- makeRequest(newRetryCount); ++ ++ if (!isResolved) { ++ makeRequest(newRetryCount); ++ } + }); + proxy_events_1.default(request, emitter, proxiedRequestEvents); + };