diff --git a/.changeset/twelve-cars-guess.md b/.changeset/twelve-cars-guess.md new file mode 100644 index 0000000000..76649909b2 --- /dev/null +++ b/.changeset/twelve-cars-guess.md @@ -0,0 +1,5 @@ +--- +"create-t3-app": minor +--- + +feat(prisma): support correct typings when using `.extends()` diff --git a/cli/template/extras/src/server/db/db-prisma-planetscale.ts b/cli/template/extras/src/server/db/db-prisma-planetscale.ts index dbb9c2ed32..52188938cc 100644 --- a/cli/template/extras/src/server/db/db-prisma-planetscale.ts +++ b/cli/template/extras/src/server/db/db-prisma-planetscale.ts @@ -2,20 +2,21 @@ import { Client } from "@planetscale/database"; import { PrismaPlanetScale } from "@prisma/adapter-planetscale"; import { PrismaClient } from "@prisma/client"; -import { env } from "~/env.js"; +import { env } from "~/env"; -const globalForPrisma = globalThis as unknown as { - prisma: PrismaClient | undefined; -}; +const psClient = new Client({ url: env.DATABASE_URL }); -const client = new Client({ url: env.DATABASE_URL }); - -export const db = - globalForPrisma.prisma ?? +const createPrismaClient = () => new PrismaClient({ log: env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"], - adapter: new PrismaPlanetScale(client), + adapter: new PrismaPlanetScale(psClient), }); +const globalForPrisma = globalThis as unknown as { + prisma: ReturnType | undefined; +}; + +export const db = globalForPrisma.prisma ?? createPrismaClient(); + if (env.NODE_ENV !== "production") globalForPrisma.prisma = db; diff --git a/cli/template/extras/src/server/db/db-prisma.ts b/cli/template/extras/src/server/db/db-prisma.ts index 02696bcc31..07dc0271a5 100644 --- a/cli/template/extras/src/server/db/db-prisma.ts +++ b/cli/template/extras/src/server/db/db-prisma.ts @@ -2,15 +2,16 @@ import { PrismaClient } from "@prisma/client"; import { env } from "~/env"; -const globalForPrisma = globalThis as unknown as { - prisma: PrismaClient | undefined; -}; - -export const db = - globalForPrisma.prisma ?? +const createPrismaClient = () => new PrismaClient({ log: env.NODE_ENV === "development" ? ["query", "error", "warn"] : ["error"], }); +const globalForPrisma = globalThis as unknown as { + prisma: ReturnType | undefined; +}; + +export const db = globalForPrisma.prisma ?? createPrismaClient(); + if (env.NODE_ENV !== "production") globalForPrisma.prisma = db;