mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-25 17:54:34 +08:00
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
/**
|
|
* ChatLab API 服务 Preload API (hierarchical data source model)
|
|
*/
|
|
|
|
import { ipcRenderer, type IpcRendererEvent } from 'electron'
|
|
|
|
export interface ApiServerConfig {
|
|
enabled: boolean
|
|
port: number
|
|
token: string
|
|
createdAt: number
|
|
}
|
|
|
|
export interface ApiServerStatus {
|
|
running: boolean
|
|
port: number | null
|
|
startedAt: number | null
|
|
error: string | null
|
|
}
|
|
|
|
export const apiServerApi = {
|
|
// ==================== API 服务管理 ====================
|
|
|
|
getConfig: (): Promise<ApiServerConfig> => {
|
|
return ipcRenderer.invoke('api:getConfig')
|
|
},
|
|
|
|
getStatus: (): Promise<ApiServerStatus> => {
|
|
return ipcRenderer.invoke('api:getStatus')
|
|
},
|
|
|
|
setEnabled: (enabled: boolean): Promise<ApiServerStatus> => {
|
|
return ipcRenderer.invoke('api:setEnabled', enabled)
|
|
},
|
|
|
|
setPort: (port: number): Promise<ApiServerStatus> => {
|
|
return ipcRenderer.invoke('api:setPort', port)
|
|
},
|
|
|
|
regenerateToken: (): Promise<ApiServerConfig> => {
|
|
return ipcRenderer.invoke('api:regenerateToken')
|
|
},
|
|
|
|
onStartupError: (callback: (data: { error: string }) => void): (() => void) => {
|
|
const handler = (_event: IpcRendererEvent, data: { error: string }) => callback(data)
|
|
ipcRenderer.on('api:startupError', handler)
|
|
return () => ipcRenderer.removeListener('api:startupError', handler)
|
|
},
|
|
|
|
onImportCompleted: (callback: () => void): (() => void) => {
|
|
const handler = () => callback()
|
|
ipcRenderer.on('api:importCompleted', handler)
|
|
return () => ipcRenderer.removeListener('api:importCompleted', handler)
|
|
},
|
|
}
|