From 67afadec4e95c062a3dbff57e85230f9afb43e7f Mon Sep 17 00:00:00 2001 From: DecDuck Date: Thu, 8 May 2025 16:17:23 +1000 Subject: [PATCH] fix: remove jank prisma script, and move to generated prisma client --- server/.gitignore | 5 +- server/Dockerfile | 2 +- server/build/fix-prisma.js | 55 ------------ server/components/Auth/Simple.vue | 2 +- server/components/CreateCollectionModal.vue | 2 +- server/components/DeleteCollectionModal.vue | 2 +- server/components/GameCarousel.vue | 2 +- server/components/NotificationItem.vue | 2 +- .../UserHeader/NotificationWidgetPanel.vue | 2 +- server/composables/collection.ts | 2 +- server/composables/news.ts | 2 +- server/composables/notifications.ts | 2 +- server/composables/user.ts | 2 +- server/package.json | 8 +- server/pages/admin/library/[id]/index.vue | 2 +- server/pages/admin/users/auth/index.vue | 2 +- .../pages/admin/users/auth/simple/index.vue | 2 +- server/pages/auth/signin.vue | 6 +- server/pages/library/game/[id]/index.vue | 2 +- server/pages/library/index.vue | 2 +- server/pages/news/index.vue | 2 +- server/pages/store/[id]/index.vue | 2 +- server/prisma/schema.prisma | 2 + server/server/api/v1/admin/auth/index.get.ts | 2 +- .../server/api/v1/auth/signin/simple.post.ts | 2 +- .../server/api/v1/auth/signup/simple.post.ts | 2 +- .../server/api/v1/client/game/versions.get.ts | 3 +- .../[gameid]/[slotindex]/index.delete.ts | 2 +- .../saves/[gameid]/[slotindex]/index.get.ts | 2 +- .../saves/[gameid]/[slotindex]/push.post.ts | 2 +- .../api/v1/client/saves/[gameid]/index.get.ts | 2 +- .../v1/client/saves/[gameid]/index.post.ts | 2 +- .../server/api/v1/client/saves/index.get.ts | 2 +- .../api/v1/client/saves/settings.get.ts | 2 +- .../api/v1/client/user/webtoken.post.ts | 2 +- .../api/v1/user/token/[id]/index.delete.ts | 2 +- server/server/api/v1/user/token/index.get.ts | 2 +- server/server/api/v1/user/token/index.post.ts | 2 +- server/server/internal/acls/index.ts | 2 +- .../server/internal/clients/capabilities.ts | 2 +- .../server/internal/clients/event-handler.ts | 2 +- server/server/internal/clients/handler.ts | 2 +- .../config/application-configuration.ts | 2 +- server/server/internal/db/database.ts | 2 +- server/server/internal/downloads/manifest.ts | 2 +- server/server/internal/library/index.ts | 2 +- server/server/internal/metadata/giantbomb.ts | 4 +- server/server/internal/metadata/igdb.ts | 4 +- server/server/internal/metadata/index.ts | 4 +- server/server/internal/metadata/manual.ts | 2 +- .../server/internal/metadata/pcgamingwiki.ts | 4 +- server/server/internal/metadata/types.d.ts | 2 +- server/server/internal/notifications/index.ts | 2 +- server/server/internal/oidc/index.ts | 2 +- server/server/internal/session/cache.ts | 35 ++++++++ server/server/internal/session/index.ts | 5 +- server/server/internal/utils/parseplatform.ts | 2 +- server/server/plugins/04.auth-init.ts | 2 +- server/tsconfig.json | 5 +- server/yarn.lock | 89 +++++++++---------- 60 files changed, 153 insertions(+), 168 deletions(-) delete mode 100644 server/build/fix-prisma.js create mode 100644 server/server/internal/session/cache.ts diff --git a/server/.gitignore b/server/.gitignore index 915b82c5..705c5c91 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -30,4 +30,7 @@ logs # deploy template deploy-template/* -!deploy-template/compose.yml \ No newline at end of file +!deploy-template/compose.yml + +# generated prisma client +/prisma/client \ No newline at end of file diff --git a/server/Dockerfile b/server/Dockerfile index affddb04..cef3e9b3 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -26,6 +26,6 @@ COPY --from=build-system /build/build ./startup # OpenSSL as a dependency for Drop (TODO: seperate build environment) RUN apt-get update -y && apt-get install -y openssl -RUN yarn global add prisma@6.6.0 +RUN yarn global add prisma@6.7.0 CMD ["/app/startup/launch.sh"] \ No newline at end of file diff --git a/server/build/fix-prisma.js b/server/build/fix-prisma.js deleted file mode 100644 index 06223527..00000000 --- a/server/build/fix-prisma.js +++ /dev/null @@ -1,55 +0,0 @@ -// thanks https://github.com/prisma/prisma/issues/26565#issuecomment-2777915354 - -import fs from "fs/promises"; -import path from "path"; -import { fileURLToPath } from "url"; - -async function replaceInFiles(dir) { - const files = await fs.readdir(dir, { withFileTypes: true }); - - for (const file of files) { - const fullPath = path.join(dir, file.name); - // Skip directories - if (!file.isDirectory()) { - if ( - file.name.endsWith(".js") || - file.name.endsWith(".ts") || - file.name.endsWith(".mjs") - ) { - let content = await fs.readFile(fullPath, "utf8"); - if (content.includes(".prisma")) { - const isWindows = content.includes("\r\n"); - const lineEnding = isWindows ? "\r\n" : "\n"; - - content = content - .split(/\r?\n/) - .map((line) => line.replace(/\.prisma/g, "_prisma")) - .join(lineEnding); - - await fs.writeFile(fullPath, content, "utf8"); - console.log(`Modified: ${fullPath}`); - } - } - } - } -} - -async function main() { - const __filename = fileURLToPath(import.meta.url); - const __dirname = path.dirname(__filename); - - const oldPath = path.join(__dirname, "../node_modules/.prisma"); - const newPath = path.join(__dirname, "../node_modules/_prisma"); - try { - await fs.rename(oldPath, newPath); - console.log("Directory renamed from .prisma to _prisma"); - // eslint-disable-next-line no-unused-vars - } catch (err) { - console.log("Directory .prisma does not exist or has already been renamed"); - } - - await replaceInFiles(path.join(__dirname, "../node_modules/@prisma/client")); - console.log("Done! --- prisma!!!, replaced .prisma with _prisma"); -} - -main().catch((err) => console.error(err)); diff --git a/server/components/Auth/Simple.vue b/server/components/Auth/Simple.vue index c248f2f0..a38fe8d0 100644 --- a/server/components/Auth/Simple.vue +++ b/server/components/Auth/Simple.vue @@ -82,7 +82,7 @@ diff --git a/server/composables/collection.ts b/server/composables/collection.ts index 120b0c26..64b5ad28 100644 --- a/server/composables/collection.ts +++ b/server/composables/collection.ts @@ -1,4 +1,4 @@ -import type { Collection, CollectionEntry, Game } from "@prisma/client"; +import type { Collection, CollectionEntry, Game } from "~/prisma/client"; import type { SerializeObject } from "nitropack"; type FullCollection = Collection & { diff --git a/server/composables/news.ts b/server/composables/news.ts index bd277a7c..cec5e4ac 100644 --- a/server/composables/news.ts +++ b/server/composables/news.ts @@ -1,4 +1,4 @@ -import type { Article } from "@prisma/client"; +import type { Article } from "~/prisma/client"; import type { SerializeObject } from "nitropack"; export const useNews = () => diff --git a/server/composables/notifications.ts b/server/composables/notifications.ts index 304a7cd3..44d28324 100644 --- a/server/composables/notifications.ts +++ b/server/composables/notifications.ts @@ -1,4 +1,4 @@ -import type { Notification } from "@prisma/client"; +import type { Notification } from "~/prisma/client"; const ws = new WebSocketHandler("/api/v1/notifications/ws"); diff --git a/server/composables/user.ts b/server/composables/user.ts index b2a27194..ae604da3 100644 --- a/server/composables/user.ts +++ b/server/composables/user.ts @@ -1,4 +1,4 @@ -import type { User } from "@prisma/client"; +import type { User } from "~/prisma/client"; // undefined = haven't check // null = check, no user diff --git a/server/package.json b/server/package.json index ea7fe5bc..41d05929 100644 --- a/server/package.json +++ b/server/package.json @@ -8,7 +8,7 @@ "dev": "nuxt dev", "generate": "nuxt generate", "preview": "nuxt preview", - "postinstall": "prisma generate && nuxt prepare && node build/fix-prisma.js", + "postinstall": "prisma generate && nuxt prepare", "typecheck": "nuxt typecheck", "lint": "yarn lint:eslint && yarn lint:prettier", "lint:eslint": "eslint .", @@ -21,7 +21,7 @@ "@heroicons/vue": "^2.1.5", "@nuxt/fonts": "^0.11.0", "@nuxt/image": "^1.10.0", - "@prisma/client": "^6.6.0", + "@prisma/client": "^6.7.0", "@tailwindcss/vite": "^4.0.6", "argon2": "^0.41.1", "arktype": "^2.1.10", @@ -35,7 +35,7 @@ "micromark": "^4.0.1", "nuxt": "^3.16.2", "nuxt-security": "2.2.0", - "prisma": "^6.6.0", + "prisma": "^6.7.0", "sharp": "^0.33.5", "stream-mime-type": "^2.0.0", "turndown": "^7.2.0", @@ -75,4 +75,4 @@ "prisma": { "schema": "./prisma" } -} \ No newline at end of file +} diff --git a/server/pages/admin/library/[id]/index.vue b/server/pages/admin/library/[id]/index.vue index 104c679d..e00c9ac6 100644 --- a/server/pages/admin/library/[id]/index.vue +++ b/server/pages/admin/library/[id]/index.vue @@ -519,7 +519,7 @@