let ipc: NodeJS.IpcRendererImpl | undefined; /** * Get IPCRenderer implementation for the current process. */ export function getIPCRenderer () { if (ipc) return ipc; const ipcBinding = process._linkedBinding('electron_renderer_ipc'); switch (process.type) { case 'renderer': return (ipc = ipcBinding.createForRenderFrame()); case 'service-worker': return (ipc = ipcBinding.createForServiceWorker()); default: throw new Error(`Cannot create IPCRenderer for '${process.type}' process`); } };