smh13171317 commited on
Commit
3efa8b7
·
verified ·
1 Parent(s): 0ecac7b

Upload electron/preload.js with huggingface_hub

Browse files
Files changed (1) hide show
  1. electron/preload.js +34 -0
electron/preload.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { contextBridge, ipcRenderer } = require('electron');
2
+
3
+ // Expose protected methods that allow the renderer process to use the ipcRenderer
4
+ contextBridge.exposeInMainWorld('electronAPI', {
5
+ // App info
6
+ getAppVersion: () => ipcRenderer.invoke('get-app-version'),
7
+ getUserDataPath: () => ipcRenderer.invoke('get-user-data-path'),
8
+ getDocumentsPath: () => ipcRenderer.invoke('get-documents-path'),
9
+
10
+ // Dialogs
11
+ showOpenDialog: (options) => ipcRenderer.invoke('show-open-dialog', options),
12
+ showSaveDialog: (options) => ipcRenderer.invoke('show-save-dialog', options),
13
+
14
+ // Store
15
+ setStore: (key, value) => ipcRenderer.invoke('set-store', key, value),
16
+ getStore: (key, defaultValue) => ipcRenderer.invoke('get-store', key, defaultValue),
17
+ deleteStore: (key) => ipcRenderer.invoke('delete-store', key),
18
+ clearStore: () => ipcRenderer.invoke('clear-store'),
19
+
20
+ // Events
21
+ onNavigateToSettings: (callback) => ipcRenderer.on('navigate-to-settings', callback),
22
+ onNavigateToHelp: (callback) => ipcRenderer.on('navigate-to-help', callback),
23
+ removeAllListeners: (channel) => ipcRenderer.removeAllListeners(channel)
24
+ });
25
+
26
+ // Secure API for models and voice
27
+ contextBridge.exposeInMainWorld('modelAPI', {
28
+ invoke: (channel, data) => {
29
+ const validChannels = ['load-model', 'unload-model', 'generate-text', 'generate-image', 'generate-video'];
30
+ if (validChannels.includes(channel)) {
31
+ return ipcRenderer.invoke(channel, data);
32
+ }
33
+ }
34
+ });