feat(umu id override): add support for overriding UMU id

This commit is contained in:
DecDuck
2024-12-23 13:33:22 +11:00
parent b50e27f4b0
commit fd4a7d1981
5 changed files with 103 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ export default defineEventHandler(async (h3) => {
const startup = body.startup;
const setup = body.setup ?? "";
const delta = body.delta ?? false;
const umuId = body.umuId;
// startup & delta require more complex checking logic
if (!gameId || !versionName || !platform)
@@ -21,6 +22,12 @@ export default defineEventHandler(async (h3) => {
"ID, version, platform, setup, and startup (if not in update mode) are required.",
});
if (umuId && typeof umuId !== "string")
throw createError({
statusCode: 400,
statusMessage: "If specified, UMU ID must be a string.",
});
if (!delta && !startup)
throw createError({
statusCode: 400,
@@ -46,6 +53,7 @@ export default defineEventHandler(async (h3) => {
platform,
startup,
setup,
umuId,
},
delta
);

View File

@@ -208,7 +208,12 @@ class LibraryManager {
async importVersion(
gameId: string,
versionName: string,
metadata: { platform: string; setup: string; startup: string },
metadata: {
platform: string;
setup: string;
startup: string;
umuId: string | undefined;
},
delta = false
) {
const taskId = `import:${gameId}:${versionName}`;
@@ -264,6 +269,7 @@ class LibraryManager {
platform: platform,
setupCommand: metadata.setup,
launchCommand: metadata.startup,
umuIdOverride: metadata.umuId,
dropletManifest: manifest,
versionIndex: currentIndex,
delta: delta,