From aea25842ce394c870586a7c4e48e28c78a940989 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Wed, 18 Dec 2024 15:01:06 +0530 Subject: [PATCH 1/7] fix: string json response error --- .../src/components/ResponsePane/QueryResult/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index e9acd1f5c..69f14248d 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -27,7 +27,11 @@ const formatResponse = (data, mode, filter) => { let isValidJSON = false; try { - isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object'; + if (typeof data === 'string') { + isValidJSON = true; + } else { + isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object'; + } } catch (error) { console.log('Error parsing JSON: ', error.message); } From 236bc48d98b5157785504d85d27e571dcd684569 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Mon, 23 Dec 2024 12:11:46 +0530 Subject: [PATCH 2/7] fix: null data response --- .../bruno-app/src/components/ResponsePane/QueryResult/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index 69f14248d..8adf506a1 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -20,7 +20,7 @@ const formatResponse = (data, mode, filter) => { } if (data === null) { - return data; + return 'null'; } if (mode.includes('json')) { From 582e8e5eaca97ec84d409ed1139f8d5a52ec3ccd Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Mon, 23 Dec 2024 13:36:58 +0530 Subject: [PATCH 3/7] fix: condition --- .../src/components/ResponsePane/QueryResult/index.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index 8adf506a1..927b13314 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -27,11 +27,8 @@ const formatResponse = (data, mode, filter) => { let isValidJSON = false; try { - if (typeof data === 'string') { - isValidJSON = true; - } else { - isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object'; - } + isValidJSON = + typeof JSON.parse(JSON.stringify(data)) === 'object' || typeof JSON.parse(JSON.stringify(data)) === 'string'; } catch (error) { console.log('Error parsing JSON: ', error.message); } From 9a2d8bfff3ed6ef5b932ab8f3041fcdb16939fdd Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Fri, 27 Dec 2024 11:12:46 +0530 Subject: [PATCH 4/7] adding quotes in text response --- .../src/components/ResponsePane/QueryResult/index.js | 5 ++--- packages/bruno-electron/src/ipc/network/index.js | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index 927b13314..81bcaca7e 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -27,14 +27,13 @@ const formatResponse = (data, mode, filter) => { let isValidJSON = false; try { - isValidJSON = - typeof JSON.parse(JSON.stringify(data)) === 'object' || typeof JSON.parse(JSON.stringify(data)) === 'string'; + isValidJSON = typeof JSON.parse(JSON.stringify(data)) === 'object' } catch (error) { console.log('Error parsing JSON: ', error.message); } if (!isValidJSON && typeof data === 'string') { - return data; + return JSON.stringify(data); } if (filter) { diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 9e37c8289..479cb0d04 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -366,7 +366,10 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d data = data.replace(/^\uFEFF/, ''); - if (!disableParsingResponseJson) { + if ( + !disableParsingResponseJson + && !(data.startsWith("\"") && data.endsWith("\"")) // a quoated string is also a vaild json but we want to show it as a quoated string only (parsing removes the quoates) + ) { data = JSON.parse(data); } } catch { } From 54d8fbc478621459d448bbceb5059b896373af86 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Fri, 27 Dec 2024 11:16:26 +0530 Subject: [PATCH 5/7] rm: json stringfy from json string data res --- .../bruno-app/src/components/ResponsePane/QueryResult/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js index 81bcaca7e..b6b8d751d 100644 --- a/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js +++ b/packages/bruno-app/src/components/ResponsePane/QueryResult/index.js @@ -33,7 +33,7 @@ const formatResponse = (data, mode, filter) => { } if (!isValidJSON && typeof data === 'string') { - return JSON.stringify(data); + return data; } if (filter) { From b6b4b7362fb6decf407fdc81a11d527ecfe5d4c7 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Fri, 27 Dec 2024 15:51:06 +0530 Subject: [PATCH 6/7] fix: condition --- packages/bruno-electron/src/ipc/network/index.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 479cb0d04..6685e95ab 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -365,14 +365,17 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => try { // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d + + // a quoated string is also a vaild json but we want to show it as a quoated string only (parsing removes the quoates) data = data.replace(/^\uFEFF/, ''); - if ( - !disableParsingResponseJson - && !(data.startsWith("\"") && data.endsWith("\"")) // a quoated string is also a vaild json but we want to show it as a quoated string only (parsing removes the quoates) - ) { + if ( !disableParsingResponseJson && ! (typeof data === 'string' && data.startsWith("\"") && data.endsWith("\""))) { + data = JSON.parse(data); + } { data = JSON.parse(data); } - } catch { } + } catch { + console.log('Failed to parse response data as JSON'); + } return { data, dataBuffer }; }; From 767db7573092bb537eac663d6cd1319d51c81f14 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Fri, 27 Dec 2024 16:10:57 +0530 Subject: [PATCH 7/7] update: comment --- packages/bruno-electron/src/ipc/network/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 6685e95ab..84f49d07b 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -366,12 +366,10 @@ const parseDataFromResponse = (response, disableParsingResponseJson = false) => // Filter out ZWNBSP character // https://gist.github.com/antic183/619f42b559b78028d1fe9e7ae8a1352d - // a quoated string is also a vaild json but we want to show it as a quoated string only (parsing removes the quoates) + // If the response is a string and starts and ends with double quotes, it's a stringified JSON and should not be parsed data = data.replace(/^\uFEFF/, ''); if ( !disableParsingResponseJson && ! (typeof data === 'string' && data.startsWith("\"") && data.endsWith("\""))) { data = JSON.parse(data); - } { - data = JSON.parse(data); } } catch { console.log('Failed to parse response data as JSON');