Handling IPC messages in Electron can be a pain if you are building an app with a very active communication between processes. Instead of reinventing the wheel
electron-ipc-server aims to reduce the learning curve by reimplementing well known patterns such as those used for routing in Express on the server side and a fetch*-ish* API on the client side. Internally it' still using ipcRenderer and ipcMain so there's nothing magic going on.
// In main processconst server =server
// In render processconst client =client
npm i electron-ipc-server --save