Unverified 提交 b2eb05a1 authored 作者: Will Chen's avatar Will Chen 提交者: GitHub

Simplify error handling for IPC handlers (#119)

上级 c203b1d0
import { ipcMain, IpcMainInvokeEvent } from "electron";
import log from "electron-log";
export function createSafeHandler(logger: log.LogFunctions) {
return (
channel: string,
fn: (event: IpcMainInvokeEvent, ...args: any[]) => Promise<any>,
) => {
ipcMain.handle(
channel,
async (event: IpcMainInvokeEvent, ...args: any[]) => {
try {
return await fn(event, ...args);
} catch (error) {
logger.error(
`Error in ${fn.name}: args: ${JSON.stringify(args)}`,
error,
);
throw new Error(`[${channel}] ${error}`);
}
},
);
};
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论