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', 'open-app', "copy-template"]; if (validChannels.includes(channel)) { ipcRenderer.send(channel, data1, data2); } }, receive: (channel, func, data) => { let validChannels = ['csv-data', 'file-list-data', 'file-list-error', 'prompt-newlv-reply', 'prompt-newinst-reply', "copy-template-replay"]; if (validChannels.includes(channel)) { // Deliberately strip event as it includes `sender` ipcRenderer.on(channel, (event, data, ...args) => func(data, ...args)); } } } );