From 1dea186a6ee888dcaed12e00a14b5c0f66e60376 Mon Sep 17 00:00:00 2001 From: Felix Rieseberg Date: Sat, 18 Nov 2017 00:50:53 -0800 Subject: [PATCH] :thinking_face: What if you could return an Error? --- lib/renderer/init.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/renderer/init.js b/lib/renderer/init.js index b7fc3877ab..ae694423d3 100644 --- a/lib/renderer/init.js +++ b/lib/renderer/init.js @@ -45,6 +45,17 @@ electron.ipcRenderer.on('ELECTRON_INTERNAL_RENDERER_ASYNC_WEB_FRAME_METHOD', (ev event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, null, resolvedResult) }) .catch((resolvedError) => { + if (resolvedError instanceof Error) { + // Errors get lost, because: JSON.stringify(new Error('Message')) === {} + // Take the serializable properties and construct a generic object + resolvedError = { + message: resolvedError.message, + stack: resolvedError.stack, + name: resolvedError.name, + __ELECTRON_SERIALIZED_ERROR__: true + } + } + event.sender.send(`ELECTRON_INTERNAL_BROWSER_ASYNC_WEB_FRAME_RESPONSE_${requestId}`, resolvedError) }) }