reinit
This commit is contained in:
39
src/preload/index.ts
Normal file
39
src/preload/index.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { contextBridge, ipcRenderer } from 'electron'
|
||||
import { electronAPI } from '@electron-toolkit/preload'
|
||||
import { settingsDto } from '@my-type/settings'
|
||||
|
||||
// Custom APIs for renderer
|
||||
// 在此添加新的进程间通信 API
|
||||
const api = {
|
||||
_saveSettings: (settings: settingsDto) => ipcRenderer.invoke('settings:save', settings),
|
||||
_updateSettings: () => ipcRenderer.invoke('settings:update'),
|
||||
_openCodeLaunchpad: () => ipcRenderer.invoke('tools:openCodeLaunchpad'),
|
||||
_closeCodeLaunchpad: () => ipcRenderer.invoke('tools:closeCodeLaunchpad')
|
||||
}
|
||||
|
||||
const codeLaunchpadApi = {
|
||||
_getIDEs: () => ipcRenderer.invoke('codeLaunchpad:getIDEs'),
|
||||
_checkIDEs: () => ipcRenderer.invoke('codeLaunchpad:checkIDEs'),
|
||||
_getIDEsVersion: () => ipcRenderer.invoke('codeLaunchpad:getIDEsVersion'),
|
||||
_checkIDEsVersion: () => ipcRenderer.invoke('codeLaunchpad:checkIDEsVersion')
|
||||
}
|
||||
|
||||
// Use `contextBridge` APIs to expose Electron APIs to
|
||||
// renderer only if context isolation is enabled, otherwise
|
||||
// just add to the DOM global.
|
||||
if (process.contextIsolated) {
|
||||
try {
|
||||
contextBridge.exposeInMainWorld('electron', electronAPI)
|
||||
contextBridge.exposeInMainWorld('api', api)
|
||||
contextBridge.exposeInMainWorld('codeLaunchpad', codeLaunchpadApi)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
} else {
|
||||
// @ts-ignore (define in dts)
|
||||
window.electron = electronAPI
|
||||
// @ts-ignore (define in dts)
|
||||
window.api = api
|
||||
// @ts-ignore (define in dts)
|
||||
window.codeLaunchpad = codeLaunchpadApi
|
||||
}
|
||||
Reference in New Issue
Block a user