UNPKG

@ui-tars/electron-ipc

Version:

Type-safe Electron inter-process communication for UI-TARS

50 lines (47 loc) 1 kB
// src/main/initIpc.ts var createChainProdure = () => { const chain = { input(_schema) { return createChainProdure(); }, handle: (handle) => { return { handle }; } }; return chain; }; var initIpc = { create() { return { procedure: createChainProdure(), router: (router) => { return router; } }; } }; // src/main/registerIpcMain.ts import { ipcMain } from "electron"; var registerIpcMain = (router) => { for (const [name, route] of Object.entries(router)) { ipcMain.handle(name, (e, payload) => { return route.handle({ context: { sender: e.sender }, input: payload }); }); } }; // src/main/createServer.ts var createServer = (router) => { return new Proxy({}, { get: (_, prop) => { const route = router[prop]; return (input, sender) => { return route.handle({ context: { sender: sender || null }, input }); }; } }); }; export { createServer, initIpc, registerIpcMain };