From 7c726a03a8560f45281ddd577aa17933deddca1d Mon Sep 17 00:00:00 2001 From: Leo Zurbriggen Date: Fri, 2 Feb 2024 11:23:53 +0100 Subject: [PATCH 1/2] fix isJSON checks for custom json types --- src/templates/core/fetch/getResponseBody.hbs | 3 +-- src/templates/core/node/getResponseBody.hbs | 3 +-- src/templates/core/xhr/getResponseBody.hbs | 3 +-- test/__snapshots__/index.spec.ts.snap | 6 ++---- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/templates/core/fetch/getResponseBody.hbs b/src/templates/core/fetch/getResponseBody.hbs index 1011380ee..7f2c680c8 100644 --- a/src/templates/core/fetch/getResponseBody.hbs +++ b/src/templates/core/fetch/getResponseBody.hbs @@ -3,8 +3,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); + const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { diff --git a/src/templates/core/node/getResponseBody.hbs b/src/templates/core/node/getResponseBody.hbs index 1011380ee..7f2c680c8 100644 --- a/src/templates/core/node/getResponseBody.hbs +++ b/src/templates/core/node/getResponseBody.hbs @@ -3,8 +3,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); + const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { diff --git a/src/templates/core/xhr/getResponseBody.hbs b/src/templates/core/xhr/getResponseBody.hbs index ccf83b1ff..9ba90f1b3 100644 --- a/src/templates/core/xhr/getResponseBody.hbs +++ b/src/templates/core/xhr/getResponseBody.hbs @@ -3,8 +3,7 @@ export const getResponseBody = (xhr: XMLHttpRequest): any => { try { const contentType = xhr.getResponseHeader('Content-Type'); if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); + const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return JSON.parse(xhr.responseText); } else { diff --git a/test/__snapshots__/index.spec.ts.snap b/test/__snapshots__/index.spec.ts.snap index e1c221495..d02a113a5 100644 --- a/test/__snapshots__/index.spec.ts.snap +++ b/test/__snapshots__/index.spec.ts.snap @@ -473,8 +473,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); + const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { @@ -3568,8 +3567,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const jsonTypes = ['application/json', 'application/problem+json'] - const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type)); + const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { From 6ed3e1f223dbd64551642ba55f7511e88f926d5b Mon Sep 17 00:00:00 2001 From: Leo Zurbriggen Date: Fri, 2 Feb 2024 11:27:48 +0100 Subject: [PATCH 2/2] fix wrong escape characters --- src/templates/core/fetch/getResponseBody.hbs | 2 +- src/templates/core/node/getResponseBody.hbs | 2 +- src/templates/core/xhr/getResponseBody.hbs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/templates/core/fetch/getResponseBody.hbs b/src/templates/core/fetch/getResponseBody.hbs index 7f2c680c8..1ee5303b8 100644 --- a/src/templates/core/fetch/getResponseBody.hbs +++ b/src/templates/core/fetch/getResponseBody.hbs @@ -3,7 +3,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); + const isJSON = /application\/([a-zA-Z0-9.]*\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { diff --git a/src/templates/core/node/getResponseBody.hbs b/src/templates/core/node/getResponseBody.hbs index 7f2c680c8..1ee5303b8 100644 --- a/src/templates/core/node/getResponseBody.hbs +++ b/src/templates/core/node/getResponseBody.hbs @@ -3,7 +3,7 @@ export const getResponseBody = async (response: Response): Promise => { try { const contentType = response.headers.get('Content-Type'); if (contentType) { - const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); + const isJSON = /application\/([a-zA-Z0-9.]*\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return await response.json(); } else { diff --git a/src/templates/core/xhr/getResponseBody.hbs b/src/templates/core/xhr/getResponseBody.hbs index 9ba90f1b3..8f1fbced0 100644 --- a/src/templates/core/xhr/getResponseBody.hbs +++ b/src/templates/core/xhr/getResponseBody.hbs @@ -3,7 +3,7 @@ export const getResponseBody = (xhr: XMLHttpRequest): any => { try { const contentType = xhr.getResponseHeader('Content-Type'); if (contentType) { - const isJSON = /application\\/([a-zA-Z0-9.]*\\+)?json/.test(contentType.toLowerCase()); + const isJSON = /application\/([a-zA-Z0-9.]*\+)?json/.test(contentType.toLowerCase()); if (isJSON) { return JSON.parse(xhr.responseText); } else {