From 7235b861a293fd0d63c2a5882caa3eec32f30f57 Mon Sep 17 00:00:00 2001 From: Dmitry K Date: Sun, 11 Jun 2023 18:39:21 +0300 Subject: [PATCH 1/2] fix: Compatibility with SvelteKit response.clone() breaks compatibility with libraries which hooks fetch on itself, e.g. SvelteKit - https://github.com/sveltejs/kit/blob/master/packages/kit/src/runtime/server/page/load_data.js#L240 Response cloning leading to lost context for SvelteKit and request would be resent during CSR --- source/core/Ky.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/core/Ky.ts b/source/core/Ky.ts index 6d7bc0fd..8cb7e238 100644 --- a/source/core/Ky.ts +++ b/source/core/Ky.ts @@ -84,25 +84,26 @@ export class Ky { ky.request.headers.set('accept', ky.request.headers.get('accept') || mimeType); const awaitedResult = await result; - const response = awaitedResult.clone(); if (type === 'json') { + const response = awaitedResult.clone(); + if (response.status === 204) { return ''; } - const arrayBuffer = await response.clone().arrayBuffer(); + const arrayBuffer = await response.arrayBuffer(); const responseSize = arrayBuffer.byteLength; if (responseSize === 0) { return ''; } if (options.parseJson) { - return options.parseJson(await response.text()); + return options.parseJson(await awaitedResult.text()); } } - return response[type](); + return (awaitedResult as Response)[type](); }; } From 4408a065267049b9bbdd7bf2e2a1d25a42dba163 Mon Sep 17 00:00:00 2001 From: Dmitry K Date: Sun, 11 Jun 2023 19:20:15 +0300 Subject: [PATCH 2/2] Update "xo" version to be able to run tests https://github.com/xojs/xo/issues/718 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51a64747..b8fb361f 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "raw-body": "^2.5.1", "ts-node": "^10.8.1", "typescript": "^4.8.4", - "xo": "^0.50.0" + "xo": "^0.54.2" }, "sideEffects": false, "xo": {