const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld( 'electron', { send: (channel, data1, data2) => { // whitelist channels let validChannels = ['parse-csv', 'get-file-list', 'open-newlv-prompt', 'open-newinst-prompt', 'save2csv']; if (validChannels.includes(channel)) { ipcRenderer.send(channel, data1, data2); } }, receive: (channel, func) => { let validChannels = ['csv-data', 'file-list-data', 'file-list-error', 'prompt-newlv-reply', 'prompt-newinst-reply']; if (validChannels.includes(channel)) { // Deliberately strip event as it includes `sender` ipcRenderer.on(channel, (event, ...args) => func(...args)); } } } );