-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.ts
More file actions
47 lines (42 loc) · 2.88 KB
/
Copy pathindex.ts
File metadata and controls
47 lines (42 loc) · 2.88 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
36
37
38
39
40
41
42
43
44
45
46
47
import { contextBridge, ipcRenderer } from 'electron'
contextBridge.exposeInMainWorld('api', {
getSessions: (filter: unknown) => ipcRenderer.invoke('get-sessions', filter),
getMessagePreviews: (sessionId: string) => ipcRenderer.invoke('get-message-previews', sessionId),
getProjectNames: () => ipcRenderer.invoke('get-project-names'),
getSessionCount: () => ipcRenderer.invoke('get-session-count'),
getCounts: () => ipcRenderer.invoke('get-counts'),
listProjectFiles: (projectName: string) => ipcRenderer.invoke('list-project-files', projectName),
openInFinder: (projectName: string) => ipcRenderer.invoke('open-in-finder', projectName),
copyProjectPath: (projectName: string) => ipcRenderer.invoke('copy-project-path', projectName),
openInVscode: (projectName: string) => ipcRenderer.invoke('open-in-vscode', projectName),
getProjectPath: (projectName: string) => ipcRenderer.invoke('get-project-path', projectName),
toggleStar: (sessionId: string) => ipcRenderer.invoke('toggle-star', sessionId),
toggleArchive: (sessionId: string) => ipcRenderer.invoke('toggle-archive', sessionId),
togglePin: (sessionId: string) => ipcRenderer.invoke('toggle-pin', sessionId),
deleteSession: (sessionId: string) => ipcRenderer.invoke('delete-session', sessionId),
updateTags: (sessionId: string, tags: string) => ipcRenderer.invoke('update-tags', sessionId, tags),
refreshIndex: () => ipcRenderer.invoke('refresh-index'),
getInstalledTerminals: () => ipcRenderer.invoke('get-installed-terminals'),
getSessionMessages: (session: unknown) => ipcRenderer.invoke('get-session-messages', session),
resumeSession: (session: unknown) => ipcRenderer.invoke('resume-session', session),
openSystemTerminal: (command: string, cwd?: string, terminalApp?: string) => ipcRenderer.invoke('open-system-terminal', command, cwd, terminalApp),
spawnTerminal: (cwd?: string) => ipcRenderer.invoke('spawn-terminal', cwd),
ptyWrite: (tabId: string, data: string) => ipcRenderer.send('pty-write', tabId, data),
ptyResize: (tabId: string, cols: number, rows: number) => ipcRenderer.send('pty-resize', tabId, cols, rows),
ptyKill: (tabId: string) => ipcRenderer.invoke('pty-kill', tabId),
onPtyData: (cb: (data: { tabId: string; data: string }) => void) => {
const handler = (_e: unknown, d: unknown) => cb(d as { tabId: string; data: string })
ipcRenderer.on('pty-data', handler)
return () => ipcRenderer.removeListener('pty-data', handler)
},
onPtyExit: (cb: (data: { tabId: string; exitCode: number }) => void) => {
const handler = (_e: unknown, d: unknown) => cb(d as { tabId: string; exitCode: number })
ipcRenderer.on('pty-exit', handler)
return () => ipcRenderer.removeListener('pty-exit', handler)
},
onIndexReady: (cb: () => void) => {
const handler = () => cb()
ipcRenderer.on('index-ready', handler)
return () => ipcRenderer.removeListener('index-ready', handler)
}
})