From d84c70a05f3f36ac70761825bdcf64cfffc7a074 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Sat, 6 Sep 2025 19:23:02 +1000 Subject: [PATCH] fix: remove platform --- components/Icons/Platform.vue | 14 +++++----- composables/icons.ts | 8 ------ composables/platform.ts | 4 +-- pages/admin/library/g/[id]/import.vue | 27 ++++++++++++------- .../migration.sql | 8 ++++++ server/internal/clients/handler.ts | 4 +-- server/internal/platform/link.ts | 4 +-- server/internal/utils/parseplatform.ts | 8 +++--- 8 files changed, 42 insertions(+), 35 deletions(-) delete mode 100644 composables/icons.ts create mode 100644 prisma/migrations/20250906091448_remove_platform/migration.sql diff --git a/components/Icons/Platform.vue b/components/Icons/Platform.vue index 32b32f4..f989d31 100644 --- a/components/Icons/Platform.vue +++ b/components/Icons/Platform.vue @@ -1,15 +1,15 @@ diff --git a/composables/icons.ts b/composables/icons.ts deleted file mode 100644 index d56cfcf..0000000 --- a/composables/icons.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { IconsLinuxLogo, IconsWindowsLogo, IconsMacLogo } from "#components"; -import { Platform } from "~/prisma/client/enums"; - -export const PLATFORM_ICONS = { - [Platform.Linux]: IconsLinuxLogo, - [Platform.Windows]: IconsWindowsLogo, - [Platform.macOS]: IconsMacLogo, -}; diff --git a/composables/platform.ts b/composables/platform.ts index 3185a34..bf9b90a 100644 --- a/composables/platform.ts +++ b/composables/platform.ts @@ -1,4 +1,4 @@ -import { Platform } from "~/prisma/client/enums"; +import { HardwarePlatform } from "~/prisma/client/enums"; export type PlatformRenderable = { name: string; @@ -10,7 +10,7 @@ export function renderPlatforms( userPlatforms: { platformName: string; id: string; iconSvg: string }[], ): PlatformRenderable[] { return [ - ...Object.values(Platform).map((e) => ({ + ...Object.values(HardwarePlatform).map((e) => ({ name: e, param: e, platformIcon: { key: e }, diff --git a/pages/admin/library/g/[id]/import.vue b/pages/admin/library/g/[id]/import.vue index 2dcd0cd..24d0167 100644 --- a/pages/admin/library/g/[id]/import.vue +++ b/pages/admin/library/g/[id]/import.vue @@ -167,9 +167,10 @@ ]" > {{ guess.filename }} - @@ -339,9 +340,10 @@ ]" > {{ guess.filename }} - @@ -626,7 +628,6 @@ import { CheckIcon, ChevronUpDownIcon } from "@heroicons/vue/20/solid"; import { PlusIcon, TrashIcon } from "@heroicons/vue/24/outline"; import { ChevronDownIcon, ChevronUpIcon } from "@heroicons/vue/24/solid"; import type { SerializeObject } from "nitropack"; -import type { Platform } from "~/prisma/client/enums"; import type { ImportVersion } from "~/server/api/v1/admin/import/version/index.post"; definePageMeta({ @@ -651,7 +652,9 @@ const versionSettings = ref>({ }); const versionGuesses = - ref>>(); + ref< + Array> + >(); const launchProcessQuery = ref(""); const setupProcessQuery = ref(""); @@ -684,7 +687,8 @@ function autosetPlatform(value: string) { (e) => e.filename === value, ); if (guessIndex == -1) return; - versionSettings.value.platform = versionGuesses.value[guessIndex].platform; + versionSettings.value.platform = + versionGuesses.value[guessIndex].platform.param; } const umuIdEnabled = ref(false); @@ -712,7 +716,10 @@ async function updateCurrentlySelectedVersion(value: number) { gameId, )}&version=${encodeURIComponent(version)}`, ); - versionGuesses.value = options; + versionGuesses.value = options.map((e) => ({ + ...e, + platform: allPlatforms.find((v) => v.param === e.platform)!, + })); versionSettings.value.name = version; } diff --git a/prisma/migrations/20250906091448_remove_platform/migration.sql b/prisma/migrations/20250906091448_remove_platform/migration.sql new file mode 100644 index 0000000..0ff5153 --- /dev/null +++ b/prisma/migrations/20250906091448_remove_platform/migration.sql @@ -0,0 +1,8 @@ +-- DropIndex +DROP INDEX "public"."GameTag_name_idx"; + +-- DropEnum +DROP TYPE "public"."Platform"; + +-- CreateIndex +CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32)); diff --git a/server/internal/clients/handler.ts b/server/internal/clients/handler.ts index 7b673a1..9b31baa 100644 --- a/server/internal/clients/handler.ts +++ b/server/internal/clients/handler.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; import prisma from "../db/database"; -import type { Platform } from "~/prisma/client/enums"; +import type { HardwarePlatform } from "~/prisma/client/enums"; import { useCertificateAuthority } from "~/server/plugins/ca"; import type { CapabilityConfiguration, @@ -16,7 +16,7 @@ export enum AuthMode { export interface ClientMetadata { name: string; - platform: Platform; + platform: HardwarePlatform; capabilities: Partial; mode: AuthMode; } diff --git a/server/internal/platform/link.ts b/server/internal/platform/link.ts index 97b3a77..d6a1f13 100644 --- a/server/internal/platform/link.ts +++ b/server/internal/platform/link.ts @@ -1,4 +1,4 @@ -import { Platform, type HardwarePlatform } from "~/prisma/client/enums"; +import { HardwarePlatform } from "~/prisma/client/enums"; import prisma from "../db/database"; import type { PlatformLink } from "~/prisma/client/client"; @@ -26,7 +26,7 @@ export async function convertIDToLink( }); if (link) return link; - if (Platform[id as Platform]) { + if (HardwarePlatform[id as HardwarePlatform]) { return await prisma.platformLink.create({ data: { id, diff --git a/server/internal/utils/parseplatform.ts b/server/internal/utils/parseplatform.ts index 5a00e95..c54b1a1 100644 --- a/server/internal/utils/parseplatform.ts +++ b/server/internal/utils/parseplatform.ts @@ -1,14 +1,14 @@ -import { Platform } from "~/prisma/client/enums"; +import { HardwarePlatform } from "~/prisma/client/enums"; export function parsePlatform(platform: string) { switch (platform.toLowerCase()) { case "linux": - return Platform.Linux; + return HardwarePlatform.Linux; case "windows": - return Platform.Windows; + return HardwarePlatform.Windows; case "mac": case "macos": - return Platform.macOS; + return HardwarePlatform.macOS; } return undefined;