Files
gemini-nexus/src/ipc/context.ts
T
2025-12-23 01:38:53 +08:00

27 lines
653 B
TypeScript

import { os } from '@orpc/server';
import { BrowserWindow } from 'electron';
class IPCContext {
public mainWindow: BrowserWindow | undefined;
public setMainWindow(window: BrowserWindow) {
this.mainWindow = window;
}
public get mainWindowContext() {
// Return a middleware that checks for the window at execution time, not import time
return os.middleware(({ next }) => {
if (!this.mainWindow) {
throw new Error('Main window is not set in IPC context.');
}
return next({
context: {
window: this.mainWindow,
},
});
});
}
}
export const ipcContext = new IPCContext();