-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
20 lines (19 loc) · 1.45 KB
/
preload.js
File metadata and controls
20 lines (19 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('api', {
getProjects: () => ipcRenderer.invoke('get-projects'),
addProject: () => ipcRenderer.invoke('add-project'),
removeProject: (path) => ipcRenderer.invoke('remove-project', path),
startSession: (sessionId, path, launchClaude) => ipcRenderer.invoke('start-session', sessionId, path, launchClaude),
sessionWrite: (sessionId, data) => ipcRenderer.invoke('session-write', sessionId, data),
sessionResize: (sessionId, cols, rows) => ipcRenderer.invoke('session-resize', sessionId, cols, rows),
sessionActive: (sessionId) => ipcRenderer.invoke('session-active', sessionId),
stopSession: (sessionId) => ipcRenderer.invoke('stop-session', sessionId),
getUsage: () => ipcRenderer.invoke('get-usage'),
getProjectSettings: (path) => ipcRenderer.invoke('get-project-settings', path),
saveProjectSettings: (path, settings) => ipcRenderer.invoke('save-project-settings', path, settings),
getGlobalSettings: () => ipcRenderer.invoke('get-global-settings'),
saveGlobalSettings: (settings) => ipcRenderer.invoke('save-global-settings', settings),
launchExternalApp: (path, command) => ipcRenderer.invoke('launch-external-app', path, command),
onSessionData: (callback) => ipcRenderer.on('session-data', (_, sessionId, data) => callback(sessionId, data)),
onSessionExit: (callback) => ipcRenderer.on('session-exit', (_, sessionId, code) => callback(sessionId, code)),
});