Skip to content

Commit 92f0412

Browse files
committed
Fix openapi-ts#1159: clone response before processing body
1 parent 65ff4b1 commit 92f0412

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

packages/openapi-fetch/src/index.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,21 @@ export default function createClient<Paths extends {}>(clientOptions: ClientOpti
8383
}
8484

8585
// fetch!
86-
const response = await fetch(finalURL, {
86+
const originalResponse = await fetch(finalURL, {
8787
redirect: "follow",
8888
...options,
8989
...init,
9090
headers: baseHeaders,
9191
body: typeof requestBody === "string" ? requestBody : JSON.stringify(requestBody),
9292
});
9393

94+
const response = originalResponse.clone();
95+
9496
// don’t parse JSON if status is 204, or Content-Length is '0'
95-
const body = response.status === 204 || response.headers.get("Content-Length") === "0" ? {} : await response.json();
97+
const body = originalResponse.status === 204 || originalResponse.headers.get("Content-Length") === "0"
98+
? {}
99+
: await originalResponse.json();
100+
96101
return response.ok ? { data: body, response } : { error: body, response: response };
97102
}
98103

0 commit comments

Comments
 (0)