From 44462ba7c06024506ff07e3947f9039238baf3e7 Mon Sep 17 00:00:00 2001 From: "Daniel Boelzle [:dbo]" Date: Thu, 6 May 2021 15:35:03 +0200 Subject: [PATCH] GH-681: Handle empty responses (status 204) --- src/templates/core/fetch/getResponseBody.hbs | 22 +++++----- src/templates/core/node/getResponseBody.hbs | 22 +++++----- test/__snapshots__/index.spec.js.snap | 44 +++++++++++--------- 3 files changed, 48 insertions(+), 40 deletions(-) diff --git a/src/templates/core/fetch/getResponseBody.hbs b/src/templates/core/fetch/getResponseBody.hbs index 502979ef..1a6fba78 100644 --- a/src/templates/core/fetch/getResponseBody.hbs +++ b/src/templates/core/fetch/getResponseBody.hbs @@ -1,16 +1,18 @@ async function getResponseBody(response: Response): Promise { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const isJSON = contentType.toLowerCase().startsWith('application/json'); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); + if (response.status !== 204) { + try { + const contentType = response.headers.get('Content-Type'); + if (contentType) { + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } } + } catch (error) { + console.error(error); } - } catch (error) { - console.error(error); } return null; } diff --git a/src/templates/core/node/getResponseBody.hbs b/src/templates/core/node/getResponseBody.hbs index 502979ef..1a6fba78 100644 --- a/src/templates/core/node/getResponseBody.hbs +++ b/src/templates/core/node/getResponseBody.hbs @@ -1,16 +1,18 @@ async function getResponseBody(response: Response): Promise { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const isJSON = contentType.toLowerCase().startsWith('application/json'); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); + if (response.status !== 204) { + try { + const contentType = response.headers.get('Content-Type'); + if (contentType) { + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } } + } catch (error) { + console.error(error); } - } catch (error) { - console.error(error); } return null; } diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 0047c137..d71a821b 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -233,18 +233,20 @@ function getResponseHeader(response: Response, responseHeader?: string): string } async function getResponseBody(response: Response): Promise { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const isJSON = contentType.toLowerCase().startsWith('application/json'); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); + if (response.status !== 204) { + try { + const contentType = response.headers.get('Content-Type'); + if (contentType) { + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } } + } catch (error) { + console.error(error); } - } catch (error) { - console.error(error); } return null; } @@ -2586,18 +2588,20 @@ function getResponseHeader(response: Response, responseHeader?: string): string } async function getResponseBody(response: Response): Promise { - try { - const contentType = response.headers.get('Content-Type'); - if (contentType) { - const isJSON = contentType.toLowerCase().startsWith('application/json'); - if (isJSON) { - return await response.json(); - } else { - return await response.text(); + if (response.status !== 204) { + try { + const contentType = response.headers.get('Content-Type'); + if (contentType) { + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } } + } catch (error) { + console.error(error); } - } catch (error) { - console.error(error); } return null; }