mirror of
https://github.com/YuzuZensai/Discord-Presence-Relay.git
synced 2026-09-14 01:08:50 +00:00
✨ feat: initial commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import { contextBridge, ipcRenderer } from 'electron'
|
||||
import { electronAPI } from '@electron-toolkit/preload'
|
||||
import type { RelayStatus } from '../main/relay'
|
||||
|
||||
const api = {
|
||||
getStatus: (): Promise<RelayStatus> => ipcRenderer.invoke('relay:get-status'),
|
||||
start: (): Promise<void> => ipcRenderer.invoke('relay:start'),
|
||||
stop: (): Promise<void> => ipcRenderer.invoke('relay:stop'),
|
||||
getAutostart: (): Promise<boolean> => ipcRenderer.invoke('relay:get-autostart'),
|
||||
setAutostart: (enabled: boolean): Promise<boolean> =>
|
||||
ipcRenderer.invoke('relay:set-autostart', enabled),
|
||||
setMirrorEnabled: (index: number, enabled: boolean): Promise<RelayStatus> =>
|
||||
ipcRenderer.invoke('relay:set-mirror-enabled', index, enabled),
|
||||
onStatus: (callback: (status: RelayStatus) => void): (() => void) => {
|
||||
const listener = (_e: unknown, status: RelayStatus): void => callback(status)
|
||||
ipcRenderer.on('relay:status', listener)
|
||||
return () => ipcRenderer.removeListener('relay:status', listener)
|
||||
}
|
||||
}
|
||||
|
||||
if (process.contextIsolated) {
|
||||
try {
|
||||
contextBridge.exposeInMainWorld('electron', electronAPI)
|
||||
contextBridge.exposeInMainWorld('api', api)
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
} else {
|
||||
// @ts-ignore (define in dts)
|
||||
window.electron = electronAPI
|
||||
// @ts-ignore (define in dts)
|
||||
window.api = api
|
||||
}
|
||||
|
||||
export type RelayApi = typeof api
|
||||
Reference in New Issue
Block a user