fix: only "swallow" the json() parsing error if the response is empty (#47493)

This commit is contained in:
Levente Balogh
2022-05-26 13:01:53 +02:00
committed by GitHub
parent 8c477a288a
commit 84b7efb393
2 changed files with 30 additions and 5 deletions

View File

@ -106,13 +106,15 @@ export async function parseResponseBody<T>(
return response.blob() as any;
case 'json':
try {
return await response.json();
} catch (err) {
console.warn(`${response.url} returned an invalid JSON -`, err);
// An empty string is not a valid JSON.
// Sometimes (unfortunately) our APIs declare their Content-Type as JSON, however they return an empty body.
if (response.headers.get('Content-Length') === '0') {
console.warn(`${response.url} returned an invalid JSON`);
return {} as unknown as T;
}
return await response.json();
case 'text':
return response.text() as any;
}