-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.cjs
More file actions
33 lines (26 loc) · 1.21 KB
/
preload.cjs
File metadata and controls
33 lines (26 loc) · 1.21 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
const { contextBridge, ipcRenderer } = require("electron");
console.log("[preload] loaded");
contextBridge.exposeInMainWorld("api", {
onOpened: (cb) => ipcRenderer.on("app:opened", (_e, payload) => cb(payload)),
readClipboard: () => ipcRenderer.invoke("clipboard:read"),
writeClipboard: (text) => ipcRenderer.invoke("clipboard:write", text),
runLLM: (payload) => ipcRenderer.invoke("llm:run", payload),
hideWindow: () => ipcRenderer.send("hide-window"),
// config
getConfig: () => ipcRenderer.invoke("config:get"),
setConfig: (next) => ipcRenderer.invoke("config:set", next),
// API-key:
saveKey: (key) => ipcRenderer.invoke("api:saveKey", key),
clearKey: () => ipcRenderer.invoke("api:clearKey"),
// providers CRUD
listProviders: () => ipcRenderer.invoke("providers:list"),
saveProvider: (prov) => ipcRenderer.invoke("providers:save", prov),
deleteProvider: (id) => ipcRenderer.invoke("providers:delete", id),
setDefaultProvider: (id) => ipcRenderer.invoke("providers:setDefault", id),
// tiny ping for sanity
ping: () => ipcRenderer.invoke("ping"),
});
contextBridge.exposeInMainWorld("winCtl", {
resizeTo: (height, width) =>
ipcRenderer.invoke("window:resizeTo", { height, width }),
});