-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpreload.js
More file actions
35 lines (34 loc) · 1.55 KB
/
Copy pathpreload.js
File metadata and controls
35 lines (34 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronAPI', {
selectFolder: () => ipcRenderer.invoke('select-folder'),
selectFile: () => ipcRenderer.invoke('select-file'),
getTasks: () => ipcRenderer.invoke('get-tasks'),
getGuiOutputHints: () => ipcRenderer.invoke('get-gui-output-hints'),
openTaskFolder: (path) => ipcRenderer.invoke('open-task-folder', path),
openGuiDownloadFolder: (userInput) => ipcRenderer.invoke('open-gui-output-folder', userInput),
exportTasks: (ids) => ipcRenderer.invoke('export-tasks', ids),
deleteTasks: (ids) => ipcRenderer.invoke('delete-tasks', ids),
startOfflinePreview: (folderPath) => ipcRenderer.invoke('start-offline-preview', folderPath),
cancelAllDownloads: () => ipcRenderer.invoke('cancel-all-downloads'),
startTask: (config) => ipcRenderer.send('start-task', config),
setAppLocale: (lng) => ipcRenderer.send('set-app-locale', lng),
onTaskUpdate: (callback) => {
const handler = (event, data) => callback(data);
ipcRenderer.on('task-update', handler);
return () => ipcRenderer.removeListener('task-update', handler);
},
onProgress: (callback) => {
const handler = (event, data) => callback(data);
ipcRenderer.on('task-progress', handler);
return () => {
ipcRenderer.removeListener('task-progress', handler);
};
},
onTaskDone: (callback) => {
const handler = (event, data) => callback(data);
ipcRenderer.on('task-done', handler);
return () => {
ipcRenderer.removeListener('task-done', handler);
};
}
});