From 45d4c2e9fc7e3002fb5df864e1ce1738e73bc159 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Thu, 15 Oct 2020 16:25:06 +0200 Subject: [PATCH] Fixed parse of header for contentType --- package.json | 2 +- src/templates/core/fetch/getResponseBody.hbs | 11 +++++----- src/templates/core/node/getResponseBody.hbs | 12 +++++------ src/templates/core/xhr/getResponseBody.hbs | 12 +++++------ test/__snapshots__/index.spec.js.snap | 22 +++++++++----------- 5 files changed, 26 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index d5e5c8ca..89f70887 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.5.2", + "version": "0.5.3", "description": "NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/core/fetch/getResponseBody.hbs b/src/templates/core/fetch/getResponseBody.hbs index 250886dd..502979ef 100644 --- a/src/templates/core/fetch/getResponseBody.hbs +++ b/src/templates/core/fetch/getResponseBody.hbs @@ -2,12 +2,11 @@ async function getResponseBody(response: Response): Promise { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - return await response.json(); - default: - return await response.text(); + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); } } } catch (error) { diff --git a/src/templates/core/node/getResponseBody.hbs b/src/templates/core/node/getResponseBody.hbs index ddbabd6d..502979ef 100644 --- a/src/templates/core/node/getResponseBody.hbs +++ b/src/templates/core/node/getResponseBody.hbs @@ -2,13 +2,11 @@ async function getResponseBody(response: Response): Promise { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - return await response.json(); - - default: - return await response.text(); + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); } } } catch (error) { diff --git a/src/templates/core/xhr/getResponseBody.hbs b/src/templates/core/xhr/getResponseBody.hbs index bae02389..1da88836 100644 --- a/src/templates/core/xhr/getResponseBody.hbs +++ b/src/templates/core/xhr/getResponseBody.hbs @@ -2,13 +2,11 @@ function getResponseBody(xhr: XMLHttpRequest): any { try { const contentType = xhr.getResponseHeader('Content-Type'); if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - return JSON.parse(xhr.responseText); - - default: - return xhr.responseText; + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return JSON.parse(xhr.responseText); + } else { + return xhr.responseText; } } } catch (error) { diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index bca00b28..6fcd3434 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -201,12 +201,11 @@ async function getResponseBody(response: Response): Promise { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - return await response.json(); - default: - return await response.text(); + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); } } } catch (error) { @@ -2300,12 +2299,11 @@ async function getResponseBody(response: Response): Promise { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - switch (contentType.toLowerCase()) { - case 'application/json': - case 'application/json; charset=utf-8': - return await response.json(); - default: - return await response.text(); + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); } } } catch (error) {