typesafe-ipc icon indicating copy to clipboard operation
typesafe-ipc copied to clipboard

Suggestion: Different send/listen definitions for main and renderer

Open Gikkman opened this issue 4 years ago • 0 comments

I really like this library concept, and I fully agree with the outlined issue described in the philosophy part. But one thing I think would be a great enhancement would be to be able to define different events which ipcMain and ipcRenderer can send.

I saw that another typings library had that feature, so I forked this and tried to tinker it myself but my understanding of how to work with these types isn't enough.

Basically, I think it'd be helpful to do:

interface EventsFromMain {
  'msg-A': void;
}

interface EventsFromRenderer {
  'msg-B': void;
}

/* First generic indicates what types can be used for send methods, 
second generic indicates what can be used in listener methods */
const ipcRenderer: StrictIpcRenderer<EventsFromRenderer, EventsFromMain > = electron.ipcRenderer;
const ipcMain: StrictIpcMain<EventsFromMain, EventsFromRenderer> = electron.ipcMain;

Gikkman avatar Nov 01 '19 23:11 Gikkman