Commit 3fd16a36 authored by edy's avatar edy

fix(desktop): fall back to bundled renderer in dev

parent 5c713cfb
import { BrowserWindow, Menu, app } from "electron";
import { existsSync } from "node:fs";
import path from "node:path";
import { pathToFileURL } from "node:url";
function resolveFileRendererEntry(): string {
return path.join(app.getAppPath(), "dist", "renderer", "index.html");
}
function hasExplicitRendererUrl(): boolean {
return Boolean(process.env.QJCLAW_RENDERER_URL?.trim() || process.env.VITE_DEV_SERVER_URL?.trim());
}
export function resolveRendererEntry(): string {
if (!app.isPackaged) {
return process.env.QJCLAW_RENDERER_URL ?? process.env.VITE_DEV_SERVER_URL ?? "http://127.0.0.1:5173";
}
return path.join(app.getAppPath(), "dist", "renderer", "index.html");
return resolveFileRendererEntry();
}
function buildApplicationMenu(): Menu {
......@@ -62,7 +71,13 @@ export function createMainWindow(smokeEnabled = false): BrowserWindow {
export function loadMainWindowRenderer(window: BrowserWindow): Promise<void> {
const rendererEntry = resolveRendererEntry();
if (rendererEntry.startsWith("http://") || rendererEntry.startsWith("https://")) {
return window.loadURL(rendererEntry);
return window.loadURL(rendererEntry).catch((error: unknown) => {
const fileRendererEntry = resolveFileRendererEntry();
if (!app.isPackaged && !hasExplicitRendererUrl() && existsSync(fileRendererEntry)) {
return window.loadURL(pathToFileURL(fileRendererEntry).toString());
}
throw error;
});
}
return window.loadURL(pathToFileURL(rendererEntry).toString());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment