Files
TrueGrowth/apps/electron/preload.ts

37 lines
1.2 KiB
TypeScript

import { contextBridge, ipcRenderer } from 'electron';
const localCdnPreference = {
cdn: 'local',
latency: 0,
timestamp: Date.now(),
};
const windowControls = {
minimize: () => ipcRenderer.invoke('truegrowth-window:minimize'),
toggleMaximize: () => ipcRenderer.invoke('truegrowth-window:toggle-maximize'),
close: () => ipcRenderer.invoke('truegrowth-window:close'),
getState: () => ipcRenderer.invoke('truegrowth-window:is-maximized'),
onStateChange: (callback: (state: unknown) => void) => {
if (typeof callback !== 'function') {
return () => undefined;
}
const listener = (_event: Electron.IpcRendererEvent, state: unknown) =>
callback(state);
ipcRenderer.on('truegrowth-window:state', listener);
return () =>
ipcRenderer.removeListener('truegrowth-window:state', listener);
},
};
contextBridge.exposeInMainWorld('trueGrowthRuntime', {
app: 'TrueGrowth',
platform: process.platform,
assetMode: 'local',
localApiBaseUrl: 'http://127.0.0.1:48177/local-api',
windowControls,
});
contextBridge.exposeInMainWorld('__OPENTU_DESKTOP__', true);
contextBridge.exposeInMainWorld('__OPENTU_CDN__', localCdnPreference);
contextBridge.exposeInMainWorld('__AITU_CDN__', localCdnPreference);