/** * 渲染进程入口解析 —— 与 Electron 解耦,方便单测。 * * electron-vite 在 dev 模式下会把 dev server 地址写进 process.env.ELECTRON_RENDERER_URL * (形如 http://localhost:5173,无尾斜杠)。多入口项目里,各入口分别位于 * `/index.html`、`/floating-pomodoro/index.html` 等。 * 历史 bug:dev 分支写死加载 dev server 根目录,导致任何窗口都渲染主界面。 */ export type RendererTarget = | { kind: 'url'; url: string } | { kind: 'file'; file: string; query: Record | undefined }; export function resolveRendererTarget( file: string, query?: Record, devServerUrl: string | undefined = process.env.ELECTRON_RENDERER_URL ): RendererTarget { if (devServerUrl) { const base = devServerUrl.replace(/\/+$/, ''); const search = query ? '?' + new URLSearchParams(query).toString() : ''; return { kind: 'url', url: `${base}/${file}${search}` }; } return { kind: 'file', file, query }; }