/** * Electron main process shared state * * Centralized state container to avoid circular dependencies. * All modules access shared state through this object. */ import { BrowserWindow } from 'electron'; import { ChildProcess } from 'child_process'; import { Server } from 'http'; import { DEFAULT_SERVER_PORT, DEFAULT_STATIC_PORT } from './constants'; export interface ElectronState { mainWindow: BrowserWindow | null; serverProcess: ChildProcess | null; staticServer: Server | null; serverPort: number; staticPort: number; apiKey: string | null; isExternalServerMode: boolean; saveWindowBoundsTimeout: ReturnType | null; } export const state: ElectronState = { mainWindow: null, serverProcess: null, staticServer: null, serverPort: DEFAULT_SERVER_PORT, staticPort: DEFAULT_STATIC_PORT, apiKey: null, isExternalServerMode: false, saveWindowBoundsTimeout: null, };