import { ipcRenderer, IpcRendererEvent } from "electron"; import { MainToRendererEventChannel, RendererToMainInvokeChannel, RendererToMainSendChannel, } from "./contract"; export function invokeFromRenderer( channel: RendererToMainInvokeChannel, ...args: unknown[] ): Promise { return ipcRenderer.invoke(channel, ...args) as Promise; } export function sendFromRenderer( channel: RendererToMainSendChannel, ...args: unknown[] ): void { ipcRenderer.send(channel, ...args); } export function onMainEvent( channel: MainToRendererEventChannel, listener: (event: IpcRendererEvent, ...args: unknown[]) => void, ): void { ipcRenderer.on(channel, listener); }