mirror3/electron/preload.ts
2025-03-13 23:49:11 +08:00

26 lines
1.0 KiB
TypeScript

//electron\preload.ts
import { contextBridge, ipcRenderer } from 'electron';
// 在文件顶部添加类型声明
interface Message {
role: 'user' | 'assistant' | 'system';
content: string;
}
contextBridge.exposeInMainWorld('electronAPI', {
// 天气接口
getWeather: (params: { lon: number; lat: number }) =>
ipcRenderer.invoke('get-weather', params),
// 新闻接口
getNews: () => ipcRenderer.invoke('get-news'),
// 聊天接口
chatWithDeepseek: (messages: Message[]) => ipcRenderer.invoke('chat-with-deepseek', { messages }),
onChatStreamChunk: (callback: (event: unknown, chunk: string) => void) =>
ipcRenderer.on('chat-stream-chunk', callback),
onChatStreamEnd: (callback: () => void) =>
ipcRenderer.on('chat-stream-end', callback),
onChatStreamError: (callback: (event: unknown, error: string) => void) =>
ipcRenderer.on('chat-stream-error', callback),
removeListener: (channel: string, callback: (...args: any[]) => void) =>
ipcRenderer.removeListener(channel, callback)
});