UNPKG

electron-safe-ipc

Version:

Safe communication between main process and renderer processes in Electron

32 lines (24 loc) 706 B
"use strict"; var EventEmitter = require("events").EventEmitter; var qs = require("querystring"); var arraySlice = Array.prototype.slice; var ipc = new EventEmitter(); ipc.send = function () { var channel = arguments[0]; var args = arraySlice.call(arguments, 1); var req = new XMLHttpRequest(); var query = qs.stringify({ channel: channel, argsJson: JSON.stringify(args), }); req.open("GET", "electron-safe-ipc:///message?" + query); req.send(); } window.__electronSafeIpc = function (name, argsJson) { process.nextTick(function () { var args = JSON.parse(argsJson); ipc.emit.apply(ipc, [name].concat(args)); }); }; require("./request")(ipc); module.exports = ipc;