import { PrismaClient } from '@prisma/client' const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined } function getDatasourceUrl(): string | undefined { const url = process.env.DATABASE_URL if (!url) return undefined // Append connection pool params if not already present if (url.includes('connection_limit')) return url const separator = url.includes('?') ? '&' : '?' return `${url}${separator}connection_limit=20&pool_timeout=10` } export const prisma = globalForPrisma.prisma ?? new PrismaClient({ datasourceUrl: getDatasourceUrl(), log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'], }) if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma