From 7c10f4e4c2b4996e784be051132233a854270250 Mon Sep 17 00:00:00 2001 From: Simeon Radivoev Date: Wed, 25 Mar 2026 22:14:45 +0200 Subject: [PATCH] fix: Fixed browser referencing main and getting called twice when in dev mode --- scripts/dev.ts | 5 ++++- src/bun/index.ts | 16 +++++++++------- src/bun/utils/browser-params.ts | 4 ++-- src/mainview/gen/static-icon-assets.gen.ts | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/dev.ts b/scripts/dev.ts index 436c615..5728f96 100644 --- a/scripts/dev.ts +++ b/scripts/dev.ts @@ -49,7 +49,10 @@ function spawnBrowser () try { - return browser(events, process.env.FORCE_BROWSER === "true", { configPath: path.join(tmpdir(), 'gameflow') }); + return browser(events, process.env.FORCE_BROWSER === "true", { + configPath: path.join(tmpdir(), 'gameflow'), + isSteamDeckGameMode: false + }); } catch (error) { console.error(error); diff --git a/src/bun/index.ts b/src/bun/index.ts index 96b6f76..476c8a6 100644 --- a/src/bun/index.ts +++ b/src/bun/index.ts @@ -1,9 +1,10 @@ import { RunBunServer } from './server'; import { RunAPIServer } from './api/rpc'; -import { cleanup as appCleanup, config, events } from './api/app'; +import * as app from './api/app'; import init from './browser'; import { dirname } from 'pathe'; import { createInterface } from 'readline'; +import { isSteamDeckGameMode } from './utils'; const api = RunAPIServer(); let bunServer: { stop: () => void; } | undefined; @@ -16,7 +17,7 @@ if (!process.env.PUBLIC_ACCESS) async function cleanup () { console.log("Cleaning Up"); - await appCleanup(); + await app.cleanup(); bunServer?.stop(); await api.apiServer.stop(true); await api.cleanup(); @@ -38,17 +39,18 @@ if (process.env.HEADLESS) }); // Called by user - events.on('exitapp', () => + app.events.on('exitapp', () => { process.send?.({ type: 'exitapp' }); cleanup(); }); } else { - await init(events, Bun.env.FORCE_BROWSER === "true", { - configPath: dirname(config.path), - windowPosition: config.get('windowPosition'), - windowSize: config.get('windowSize') + await init(app.events, Bun.env.FORCE_BROWSER === "true", { + configPath: dirname(app.config.path), + windowPosition: app.config.get('windowPosition'), + windowSize: app.config.get('windowSize'), + isSteamDeckGameMode: isSteamDeckGameMode() }); await cleanup(); } diff --git a/src/bun/utils/browser-params.ts b/src/bun/utils/browser-params.ts index 3ae3236..0023219 100644 --- a/src/bun/utils/browser-params.ts +++ b/src/bun/utils/browser-params.ts @@ -2,7 +2,6 @@ import { SERVER_URL } from "@shared/constants"; import os from 'node:os'; import path from 'node:path'; import { getBrowserPath } from "./get-browser"; -import { isSteamDeckGameMode } from "../utils"; import { ensureDir } from 'fs-extra'; import { host } from "./host"; @@ -11,6 +10,7 @@ export interface BrowserParams configPath: string; windowPosition?: { x: number, y: number; }; windowSize?: { width?: number, height?: number; }; + isSteamDeckGameMode: boolean; } export async function BuildParams (data: BrowserParams) @@ -54,7 +54,7 @@ export async function BuildParams (data: BrowserParams) args.push('--allow-insecure-localhost'); args.push('--auto-accept-camera-and-microphone-capture'); - if (isSteamDeckGameMode()) + if (data.isSteamDeckGameMode) { args.push('--kiosk'); } else if (data.windowSize) diff --git a/src/mainview/gen/static-icon-assets.gen.ts b/src/mainview/gen/static-icon-assets.gen.ts index 1d1a4aa..cb3fe1b 100644 --- a/src/mainview/gen/static-icon-assets.gen.ts +++ b/src/mainview/gen/static-icon-assets.gen.ts @@ -464,7 +464,7 @@ const assets = new Set([ ]); // Store basePath resolved from Vite config -const BASE_PATH = "/"; +const BASE_PATH = "./"; /**