import { PrismaClient } from '@prisma/client' import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3' import path from 'path' function createPrismaClient() { const dbUrl = process.env.DATABASE_URL ?? 'file:./data/dev.db' // Parse the file path from "file:./data/dev.db" format const dbPath = dbUrl.startsWith('file:') ? path.resolve(process.cwd(), dbUrl.slice('file:'.length)) : dbUrl const adapter = new PrismaBetterSqlite3({ url: dbPath }) return new PrismaClient({ adapter, log: process.env.NODE_ENV === 'development' ? ['error'] : [], }) } const globalForPrisma = globalThis as unknown as { prisma: PrismaClient } export const prisma = globalForPrisma.prisma ?? createPrismaClient() if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma