mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
58 lines
2.0 KiB
TypeScript
58 lines
2.0 KiB
TypeScript
import process from 'node:process';
|
|
|
|
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
|
|
import is from 'electron-is';
|
|
|
|
import config from './config';
|
|
|
|
import {
|
|
forceLoadPreloadPlugin,
|
|
forceUnloadPreloadPlugin,
|
|
loadAllPreloadPlugins,
|
|
} from './loader/preload';
|
|
import { loadI18n, setLanguage } from '@/i18n';
|
|
|
|
loadI18n().then(async () => {
|
|
await setLanguage(config.get('options.language') ?? 'en');
|
|
loadAllPreloadPlugins();
|
|
});
|
|
|
|
ipcRenderer.on('plugin:unload', async (_, id: string) => {
|
|
await forceUnloadPreloadPlugin(id);
|
|
});
|
|
ipcRenderer.on('plugin:enable', async (_, id: string) => {
|
|
await forceLoadPreloadPlugin(id);
|
|
});
|
|
|
|
contextBridge.exposeInMainWorld('mainConfig', config);
|
|
contextBridge.exposeInMainWorld('electronIs', is);
|
|
contextBridge.exposeInMainWorld('ipcRenderer', {
|
|
on: (
|
|
channel: string,
|
|
listener: (event: IpcRendererEvent, ...args: unknown[]) => void,
|
|
) => ipcRenderer.on(channel, listener),
|
|
off: (channel: string, listener: (...args: unknown[]) => void) =>
|
|
ipcRenderer.off(channel, listener),
|
|
once: (
|
|
channel: string,
|
|
listener: (event: IpcRendererEvent, ...args: unknown[]) => void,
|
|
) => ipcRenderer.once(channel, listener),
|
|
send: (channel: string, ...args: unknown[]) =>
|
|
ipcRenderer.send(channel, ...args),
|
|
removeListener: (channel: string, listener: (...args: unknown[]) => void) =>
|
|
ipcRenderer.removeListener(channel, listener),
|
|
removeAllListeners: (channel: string) =>
|
|
ipcRenderer.removeAllListeners(channel),
|
|
invoke: async (channel: string, ...args: unknown[]): Promise<unknown> =>
|
|
ipcRenderer.invoke(channel, ...args),
|
|
sendSync: (channel: string, ...args: unknown[]): unknown =>
|
|
ipcRenderer.sendSync(channel, ...args),
|
|
sendToHost: (channel: string, ...args: unknown[]) =>
|
|
ipcRenderer.sendToHost(channel, ...args),
|
|
});
|
|
contextBridge.exposeInMainWorld('reload', () => ipcRenderer.send('reload'));
|
|
contextBridge.exposeInMainWorld(
|
|
'ELECTRON_RENDERER_URL',
|
|
process.env.ELECTRON_RENDERER_URL,
|
|
);
|