26 lines
792 B
TypeScript
26 lines
792 B
TypeScript
import { ipcMain } from 'electron';
|
|
import IpcMainEvent = Electron.IpcMainEvent;
|
|
|
|
export function registerHandler(channel: IpcChannel, controller: IpcController, handler: string): void {
|
|
ipcMain.on(channel, (event: IpcMainEvent, payload: IpcPayload) => {
|
|
((controller.get() as unknown) as { [x: string]: IpcHandler })
|
|
[handler](payload.data)
|
|
.then((result: unknown) => {
|
|
const response: IpcResponse = {
|
|
id: payload.id,
|
|
success: true,
|
|
data: result,
|
|
};
|
|
event.reply(channel, response);
|
|
})
|
|
.catch((reason: Error) => {
|
|
const response: IpcResponse = {
|
|
id: payload.id,
|
|
success: false,
|
|
error: reason.message,
|
|
};
|
|
event.reply(channel, response);
|
|
});
|
|
});
|
|
}
|