diff --git a/index.js b/index.js index a368e2a..6697765 100644 --- a/index.js +++ b/index.js @@ -104,6 +104,25 @@ 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) { + 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",