Track bundled vendor runtime sources
This commit is contained in:
40
vendor/aigcpanel/electron/mapi/env.ts
vendored
Normal file
40
vendor/aigcpanel/electron/mapi/env.ts
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
import electron, { BrowserWindow } from "electron";
|
||||
import { Log } from "./log";
|
||||
|
||||
export const AppEnv = {
|
||||
isInit: false,
|
||||
appRoot: null as string,
|
||||
appData: null as string,
|
||||
userData: null as string,
|
||||
dataRoot: null as string,
|
||||
};
|
||||
|
||||
export const AppRuntime = {
|
||||
fileHubRoot: null as string,
|
||||
splashWindow: null as BrowserWindow,
|
||||
mainWindow: null as BrowserWindow,
|
||||
windows: {} as Record<string, BrowserWindow>,
|
||||
};
|
||||
|
||||
export const waitAppEnvReady = async () => {
|
||||
while (!AppEnv.isInit) {
|
||||
await new Promise((resolve) => {
|
||||
setTimeout(resolve, 1000);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const callHandleFromMainOrRender = async (name: string, ...args) => {
|
||||
if (electron.ipcRenderer) {
|
||||
return electron.ipcRenderer.invoke(name, ...args);
|
||||
} else {
|
||||
// @ts-ignore
|
||||
const func = electron.ipcMain._invokeHandlers.get(name);
|
||||
if (func) {
|
||||
return func(...args);
|
||||
} else {
|
||||
Log.error(`No handler found for ${name}`);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user