From 42cd8ee31d1c0ef6946fedcf87cdedc73f24eb47 Mon Sep 17 00:00:00 2001 From: archvlad Date: Sun, 3 Mar 2024 22:53:25 +0300 Subject: [PATCH] catch error in fall back to utf8 --- source/as-promise/index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/as-promise/index.ts b/source/as-promise/index.ts index eee8903da..33fdac6d5 100644 --- a/source/as-promise/index.ts +++ b/source/as-promise/index.ts @@ -7,7 +7,7 @@ import { type RequestError, } from '../core/errors.js'; import Request from '../core/index.js'; -import {parseBody, isResponseOk, type Response} from '../core/response.js'; +import {parseBody, isResponseOk, type Response, ParseError} from '../core/response.js'; import proxyEvents from '../core/utils/proxy-events.js'; import type Options from '../core/options.js'; import {CancelError, type CancelableRequest} from './types.js'; @@ -62,7 +62,12 @@ export default function asPromise(firstRequest?: Request): CancelableRequest< response.body = parseBody(response, options.responseType, options.parseJson, options.encoding); } catch (error: any) { // Fall back to `utf8` - response.body = response.rawBody.toString(); + try { + response.body = response.rawBody.toString(); + } catch (error) { + request._beforeError(new ParseError(error as Error, response)); + return; + } if (isResponseOk(response)) { request._beforeError(error);