morpha
Version:
A Web-IDE or Desktop-IDE creator.
54 lines (44 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _utils = require('../../common/utils');
exports.default = {
name: 'ipc',
dependencies: ['electron', 'win'],
fn: function fn(_ref) {
var electron = _ref.electron,
win = _ref.win;
return {
services: {
listenServices: function listenServices(_ref2) {
var packageName = _ref2.packageName,
services = _ref2.services;
(0, _utils.each)(services, function (service, serviceKey) {
var ipcKey = packageName + '.' + serviceKey;
electron.ipcMain.on(ipcKey, function (event) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var result = services.apply(null, args);
event.returnValue = result;
});
});
},
sendAction: function sendAction(_ref3, action) {
var _currentWindow$webCon;
var packageName = _ref3.packageName;
var currentWindow = win.getCurrentWindow().browserWindow;
var ipcKey = packageName + '.' + action;
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
args[_key2 - 2] = arguments[_key2];
}
(_currentWindow$webCon = currentWindow.webContents).send.apply(_currentWindow$webCon, [ipcKey].concat(args));
console.log(ipcKey);
}
},
serviceBind: true,
bootstrap: function bootstrap() {}
};
}
};