// Electron 主进程 与 渲染进程 交互的桥梁 import {CheckVersion, Config, LLOneBotError} from "./common/types"; import { CHANNEL_ERROR, CHANNEL_GET_CONFIG, CHANNEL_LOG, CHANNEL_CHECKVERSION, CHANNEL_SELECT_FILE, CHANNEL_SET_CONFIG, CHANNEL_UPDATE, } from "./common/channels"; const {contextBridge} = require("electron"); const {ipcRenderer} = require('electron'); const llonebot = { log: (data: any) => { ipcRenderer.send(CHANNEL_LOG, data); }, checkVersion:async (): Promise => { return ipcRenderer.invoke(CHANNEL_CHECKVERSION); }, updateLLOneBot:async (): Promise => { return ipcRenderer.invoke(CHANNEL_UPDATE); }, setConfig: (config: Config) => { ipcRenderer.send(CHANNEL_SET_CONFIG, config); }, getConfig: async (): Promise => { return ipcRenderer.invoke(CHANNEL_GET_CONFIG); }, getError: async (): Promise => { return ipcRenderer.invoke(CHANNEL_ERROR); }, selectFile: (): Promise => { return ipcRenderer.invoke(CHANNEL_SELECT_FILE); } } export type LLOneBot = typeof llonebot; // 在window对象下导出只读对象 contextBridge.exposeInMainWorld("llonebot", llonebot);