From 4e80b2903b6aa64e3e4bb79e6eabf1736c7253ec Mon Sep 17 00:00:00 2001 From: Pierluigi Viti Date: Thu, 20 Jun 2024 14:45:15 +0200 Subject: [PATCH] fix: fix browser error parsing response body with status 204 --- package.json | 2 +- pnpm-lock.yaml | 72 +++++++++++++++++++++++++------------------------- src/fetch.ts | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index 04bc23e9..c612f822 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@semantic-release/git": "^10.0.1", "@types/debug": "^4.1.12", "@types/jest": "^29.5.12", - "@types/node": "^20.14.5", + "@types/node": "^20.14.6", "dotenv": "^16.4.5", "eslint": "^8.57.0", "jest": "^29.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08fb4249..1882bac1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: ^29.5.12 version: 29.5.12 '@types/node': - specifier: ^20.14.5 - version: 20.14.5 + specifier: ^20.14.6 + version: 20.14.6 dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -46,7 +46,7 @@ importers: version: 8.57.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.14.5) + version: 29.7.0(@types/node@20.14.6) json-typescript: specifier: ^1.1.2 version: 1.1.2 @@ -1229,8 +1229,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.14.5': - resolution: {integrity: sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==} + '@types/node@20.14.6': + resolution: {integrity: sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1781,8 +1781,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.806: - resolution: {integrity: sha512-nkoEX2QIB8kwCOtvtgwhXWy2IHVcOLQZu9Qo36uaGB835mdX/h8uLRlosL6QIhLVUnAiicXRW00PwaPZC74Nrg==} + electron-to-chromium@1.4.807: + resolution: {integrity: sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -4787,7 +4787,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -4800,14 +4800,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.14.5) + jest-config: 29.7.0(@types/node@20.14.6) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -4832,7 +4832,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -4850,7 +4850,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4872,7 +4872,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -4942,7 +4942,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -5239,7 +5239,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 '@types/istanbul-lib-coverage@2.0.6': {} @@ -5260,7 +5260,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.14.5': + '@types/node@20.14.6': dependencies: undici-types: 5.26.5 @@ -5624,7 +5624,7 @@ snapshots: browserslist@4.23.1: dependencies: caniuse-lite: 1.0.30001636 - electron-to-chromium: 1.4.806 + electron-to-chromium: 1.4.807 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) @@ -5798,13 +5798,13 @@ snapshots: optionalDependencies: typescript: 5.4.5 - create-jest@29.7.0(@types/node@20.14.5): + create-jest@29.7.0(@types/node@20.14.6): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.14.5) + jest-config: 29.7.0(@types/node@20.14.6) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -5897,7 +5897,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.806: {} + electron-to-chromium@1.4.807: {} emittery@0.13.1: {} @@ -6759,7 +6759,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -6779,16 +6779,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.14.5): + jest-cli@29.7.0(@types/node@20.14.6): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.14.5) + create-jest: 29.7.0(@types/node@20.14.6) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.14.5) + jest-config: 29.7.0(@types/node@20.14.6) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -6798,7 +6798,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.14.5): + jest-config@29.7.0(@types/node@20.14.6): dependencies: '@babel/core': 7.24.7 '@jest/test-sequencer': 29.7.0 @@ -6823,7 +6823,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6852,7 +6852,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6862,7 +6862,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.14.5 + '@types/node': 20.14.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -6901,7 +6901,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -6936,7 +6936,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -6964,7 +6964,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 @@ -7010,7 +7010,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -7029,7 +7029,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.5 + '@types/node': 20.14.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7038,17 +7038,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.14.5 + '@types/node': 20.14.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.14.5): + jest@29.7.0(@types/node@20.14.6): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.14.5) + jest-cli: 29.7.0(@types/node@20.14.6) transitivePeerDependencies: - '@types/node' - babel-plugin-macros diff --git a/src/fetch.ts b/src/fetch.ts index fa24d2fc..762539e1 100644 --- a/src/fetch.ts +++ b/src/fetch.ts @@ -66,7 +66,7 @@ export const fetchURL = async (url: URL, requestOptions: FetchRequestOptions, cl if (interceptors?.rawReader?.onFailure) await interceptors.rawReader.onFailure(response) } - const responseBody = response.body ? await response.json() + const responseBody = (response.body && (response.status !== 204)) ? await response.json() .then(json => { debug('response: %O', json); return json }) .catch((err: Error) => { debug('error: %s', err.message)