const { contextBridge, ipcRenderer, webUtils } = require('electron'); contextBridge.exposeInMainWorld('api', { selectFolder: () => ipcRenderer.invoke('select-folder'), selectZip: () => ipcRenderer.invoke('select-zip'), processDroppedPath: (path) => ipcRenderer.invoke('process-dropped-path', { path }), getPathForDroppedFile: (file) => webUtils.getPathForFile(file), getDestination: () => ipcRenderer.invoke('get-destination'), selectDestinationFolder: () => ipcRenderer.invoke('select-destination-folder'), updateDestination: (destination) => ipcRenderer.invoke('update-destination', { destination }), openUnroutedFolder: () => ipcRenderer.invoke('open-unrouted-folder'), listUnroutedFiles: () => ipcRenderer.invoke('list-unrouted-files'), listDuplicatesFiles: () => ipcRenderer.invoke('list-duplicates-files'), listSkippedFiles: () => ipcRenderer.invoke('list-skipped-files'), clearUnroutedFiles: () => ipcRenderer.invoke('clear-unrouted-files'), clearDuplicatesFiles: () => ipcRenderer.invoke('clear-duplicates-files'), clearSkippedFiles: () => ipcRenderer.invoke('clear-skipped-files'), onProgress: (cb) => ipcRenderer.on('progress', (_e, data) => cb(data)), offProgress: () => ipcRenderer.removeAllListeners('progress'), });