Initial TrueGrowth source import

This commit is contained in:
2026-07-07 09:36:36 +08:00
commit 3b6781d695
2283 changed files with 691996 additions and 0 deletions

49
apps/electron/preload.cjs Normal file
View File

@@ -0,0 +1,49 @@
const { contextBridge, ipcRenderer } = require('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) => {
if (typeof callback !== 'function') {
return () => undefined;
}
const listener = (_event, state) => callback(state);
ipcRenderer.on('truegrowth-window:state', listener);
return () =>
ipcRenderer.removeListener('truegrowth-window:state', listener);
},
};
const themeBridge = {
getSystemTheme: () => ipcRenderer.invoke('truegrowth-theme:get-system'),
onSystemThemeChange: (callback) => {
if (typeof callback !== 'function') {
return () => undefined;
}
const listener = (_event, state) => callback(state);
ipcRenderer.on('truegrowth-theme:system', listener);
return () =>
ipcRenderer.removeListener('truegrowth-theme:system', listener);
},
};
contextBridge.exposeInMainWorld('trueGrowthRuntime', {
app: 'TrueGrowth',
platform: process.platform,
assetMode: 'local',
localApiBaseUrl: 'http://127.0.0.1:48177/local-api',
windowControls,
theme: themeBridge,
});
contextBridge.exposeInMainWorld('__OPENTU_DESKTOP__', true);
contextBridge.exposeInMainWorld('__OPENTU_CDN__', localCdnPreference);
contextBridge.exposeInMainWorld('__AITU_CDN__', localCdnPreference);