2022-04-16 21:14:03 +08:00
|
|
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
|
|
import { IpcChannels } from '@/shared/IpcChannels'
|
2022-08-22 16:51:23 +08:00
|
|
|
import { isLinux, isMac, isProd, isWindows } from './utils'
|
2022-03-29 16:52:53 +08:00
|
|
|
const { contextBridge, ipcRenderer } = require('electron')
|
2022-04-16 13:30:25 +08:00
|
|
|
|
2022-08-22 16:51:23 +08:00
|
|
|
if (isProd) {
|
|
|
|
const log = require('electron-log')
|
|
|
|
log.transports.file.level = 'info'
|
|
|
|
log.transports.ipc.level = false
|
|
|
|
log.variables.process = 'renderer'
|
|
|
|
contextBridge.exposeInMainWorld('log', log)
|
|
|
|
}
|
2022-03-29 16:52:53 +08:00
|
|
|
|
2022-04-09 00:19:58 +08:00
|
|
|
contextBridge.exposeInMainWorld('ipcRenderer', {
|
2022-06-12 15:29:14 +08:00
|
|
|
invoke: ipcRenderer.invoke,
|
2022-04-09 00:19:58 +08:00
|
|
|
send: ipcRenderer.send,
|
2022-04-09 00:28:37 +08:00
|
|
|
on: (
|
|
|
|
channel: IpcChannels,
|
|
|
|
listener: (event: Electron.IpcRendererEvent, ...args: any[]) => void
|
|
|
|
) => {
|
2022-04-09 00:19:58 +08:00
|
|
|
ipcRenderer.on(channel, listener)
|
2022-04-09 00:28:37 +08:00
|
|
|
return () => {
|
|
|
|
ipcRenderer.removeListener(channel, listener)
|
|
|
|
}
|
2022-04-09 00:19:58 +08:00
|
|
|
},
|
|
|
|
})
|
2022-04-16 13:30:25 +08:00
|
|
|
|
2022-04-04 17:51:07 +08:00
|
|
|
contextBridge.exposeInMainWorld('env', {
|
|
|
|
isElectron: true,
|
2022-04-09 00:19:58 +08:00
|
|
|
isEnableTitlebar:
|
|
|
|
process.platform === 'win32' || process.platform === 'linux',
|
2022-05-13 01:47:55 +08:00
|
|
|
isLinux,
|
|
|
|
isMac,
|
|
|
|
isWindows,
|
2022-04-04 17:51:07 +08:00
|
|
|
})
|