From 734ee16fe18c62741baf1d8c87dd5f3b0f9eae59 Mon Sep 17 00:00:00 2001 From: Pragadesh-45 <54320162+Pragadesh-45@users.noreply.github.com> Date: Mon, 12 Jan 2026 11:39:26 +0530 Subject: [PATCH] feat: apply modified dataBuffer to the response (#6023) * feat: apply modified dataBuffer to the response * fix: ensure dataBuffer regeneration only occurs when res.setBody() is called * refactor: update dataBuffer handling in BrunoResponse --- packages/bruno-electron/src/ipc/network/index.js | 2 +- packages/bruno-js/src/bruno-response.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 633f5dd6c..6a231baa0 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -935,9 +935,9 @@ const registerNetworkIpc = (mainWindow) => { statusText: response.statusText, headers: response.headers, data: response.data, - dataBuffer: response.dataBuffer.toString('base64'), stream: isResponseStream ? axiosDataStream : null, cancelTokenUid: cancelTokenUid, + dataBuffer: response.dataBuffer.toString('base64'), size: Buffer.byteLength(response.dataBuffer), duration: responseTime ?? 0, url: response.request ? response.request.protocol + '//' + response.request.host + response.request.path : null, diff --git a/packages/bruno-js/src/bruno-response.js b/packages/bruno-js/src/bruno-response.js index bdd091153..73ca44981 100644 --- a/packages/bruno-js/src/bruno-response.js +++ b/packages/bruno-js/src/bruno-response.js @@ -55,6 +55,20 @@ class BrunoResponse { const clonedData = _.cloneDeep(data); this.res.data = clonedData; this.body = clonedData; + + // Update dataBuffer to match the modified body + if (clonedData === null || clonedData === undefined) { + this.res.dataBuffer = Buffer.from(''); + } else if (typeof clonedData === 'string') { + this.res.dataBuffer = Buffer.from(clonedData); + } else { + // For objects, stringify them + try { + this.res.dataBuffer = Buffer.from(JSON.stringify(clonedData)); + } catch (e) { + this.res.dataBuffer = Buffer.from(''); + } + } } // TODO: Refactor: dataBuffer size calculation should be handled in a shared utility so it can be passed and reused across the application