import { ipcMain, IpcMainInvokeEvent } from 'electron'; import { container, Service } from '../../core/container'; const logger = container.get(Service.LOGGER); export const ipcServer: IpcServer = { answer(channel: T, answerer: IpcHandler, IpcAnswer>) { const listener = (data: IpcParameter): Promise> => answerer(data).catch((reason: Error) => { void logger.exception(reason); throw reason; }); ipcMain.handle(channel, (event: IpcMainInvokeEvent, data: IpcParameter) => listener(data)); }, };