34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('api', {
|
|
// Config
|
|
getConfig: () => ipcRenderer.invoke('get-config'),
|
|
saveConfig: (config) => ipcRenderer.invoke('save-config', config),
|
|
getHistory: () => ipcRenderer.invoke('get-history'),
|
|
|
|
clearHistory: () => ipcRenderer.invoke('clear-history'),
|
|
|
|
// File selection
|
|
selectFiles: () => ipcRenderer.invoke('select-files'),
|
|
|
|
// Upload control
|
|
startUpload: (payload) => ipcRenderer.invoke('start-upload', payload),
|
|
cancelUpload: () => ipcRenderer.invoke('cancel-upload'),
|
|
runHealthCheck: (payload) => ipcRenderer.invoke('run-health-check', payload),
|
|
|
|
// Clipboard
|
|
copyToClipboard: (text) => ipcRenderer.invoke('copy-to-clipboard', text),
|
|
|
|
// Events (main -> renderer)
|
|
onUploadProgress: (callback) => {
|
|
ipcRenderer.on('upload-progress', (_event, data) => callback(data));
|
|
},
|
|
onUploadBatchDone: (callback) => {
|
|
ipcRenderer.on('upload-batch-done', (_event, data) => callback(data));
|
|
},
|
|
removeAllListeners: () => {
|
|
ipcRenderer.removeAllListeners('upload-progress');
|
|
ipcRenderer.removeAllListeners('upload-batch-done');
|
|
}
|
|
});
|