From 67fbb0e68e7eff3eb245ceb425c27b3892aa823c Mon Sep 17 00:00:00 2001 From: Nathan Rijksen Date: Sat, 10 Sep 2022 11:04:41 -0700 Subject: [PATCH 1/2] Facilitate running custom javascript on the main JS process --- index.js | 20 ++++++++++++++++++++ src/consts.js | 2 ++ 2 files changed, 22 insertions(+) diff --git a/index.js b/index.js index a368e2a..9825ec7 100644 --- a/index.js +++ b/index.js @@ -104,6 +104,26 @@ function onReady () { app.quit(); break; + case consts.eventNames.appExecuteJavaScript: + (async function () { + let evalAsync = (ev, json) => { + return new Promise((resolve, reject) => { + eval(ev); + }); + }; + try { + client.write(json.targetID, consts.eventNames.appExecuteJavaScriptCallback, { + reply: await evalAsync(json.code, json) + }); + } catch (error) { + console.log(error); + client.write(json.targetID, consts.eventNames.appExecuteJavaScriptCallback, { + error: error.toString() + }); + } + }()); + break; + // Dock case consts.eventNames.dockCmdBounce: let id = 0; diff --git a/src/consts.js b/src/consts.js index 92e7d0f..8185f28 100644 --- a/src/consts.js +++ b/src/consts.js @@ -9,6 +9,8 @@ module.exports = { appCmdQuit: "app.cmd.quit", appEventReady: "app.event.ready", appEventSecondInstance: "app.event.second.instance", + appExecuteJavaScript: "app.execute.javascript", + appExecuteJavaScriptCallback: "app.execute.javascript.callback", displayEventAdded: "display.event.added", displayEventMetricsChanged: "display.event.metrics.changed", displayEventRemoved: "display.event.removed", From 00a41f757b5638dd4b18f8178250601cec3f06ed Mon Sep 17 00:00:00 2001 From: Nathan Rijksen Date: Sat, 10 Sep 2022 11:09:25 -0700 Subject: [PATCH 2/2] Remove debug statement --- index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/index.js b/index.js index 9825ec7..6697765 100644 --- a/index.js +++ b/index.js @@ -116,7 +116,6 @@ function onReady () { reply: await evalAsync(json.code, json) }); } catch (error) { - console.log(error); client.write(json.targetID, consts.eventNames.appExecuteJavaScriptCallback, { error: error.toString() });