Files

39 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2017-10-15 21:39:52 +02:00
import { ipcMain, BrowserWindow } from 'electron';
2017-10-07 01:32:19 +02:00
2017-10-15 21:39:52 +02:00
module.exports = (socket: SocketIO.Server) => {
2017-10-07 01:32:19 +02:00
socket.on('registerIpcMainChannel', (channel) => {
ipcMain.on(channel, (event, args) => {
socket.emit(channel, [event.preventDefault(), args]);
});
});
socket.on('registerSyncIpcMainChannel', (channel) => {
ipcMain.on(channel, (event, args) => {
let x = <any>socket;
x.removeAllListeners(channel + 'Sync');
socket.on(channel + 'Sync', (result) => {
event.returnValue = result;
});
socket.emit(channel, [event.preventDefault(), args]);
});
});
2017-10-07 01:32:19 +02:00
socket.on('registerOnceIpcMainChannel', (channel) => {
ipcMain.once(channel, (event, args) => {
socket.emit(channel, [event.preventDefault(), args]);
});
});
socket.on('removeAllListenersIpcMainChannel', (channel) => {
ipcMain.removeAllListeners(channel);
});
2017-10-15 21:39:52 +02:00
socket.on('sendToIpcRenderer', (browserWindow, channel, ...data) => {
const window = BrowserWindow.fromId(browserWindow.id);
2017-10-07 01:32:19 +02:00
if (window) {
window.webContents.send(channel, ...data);
2017-10-07 01:32:19 +02:00
}
});
}