feat: stream setup .jsdos bundles on-the-fly instead of duplicating game data
Build & Deploy / build-and-deploy (push) Failing after 1m20s

- Add streamSetupBundle() to GameService — reads main bundle as zip,
  replaces config files (.jsdos/dosbox.conf, .jsdos/jsdos.json) with
  setup variants pointing to SETUP.EXE, streams directly to response
- Add GET /api/games/{id}/setup-bundle endpoint that calls the above
- Remove .setup.jsdos disk creation during upload — setupExe is still
  detected and stored in game metadata, but no duplicate bundle is saved
- Update frontend api.js to point setupBundleUrl() to the new endpoint
- Fix pre-existing backslash escaping bug in UploadResource.java path
  normalization (replace('\', '/') instead of replace('\\', '/'))
This commit is contained in:
Hermes Agent
2026-05-29 18:08:04 +02:00
parent 5f69ea5ead
commit 9b95e5b994
4 changed files with 83 additions and 19 deletions
+1 -1
View File
@@ -112,5 +112,5 @@ export function bundleUrl(game) {
/** Get game bundle URL for setup mode (runs SETUP.EXE instead) */
export function setupBundleUrl(game) {
if (!game) return null;
return `/games/${game.id}.setup.jsdos`;
return `/api/games/${game.id}/setup-bundle`;
}