import { Pool } from 'pg'; import { PrismaPg } from '@prisma/adapter-pg'; import { PrismaClient } from '../../generated/client'; const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined; pool: Pool | undefined; }; const pool = globalForPrisma.pool || new Pool({ connectionString: process.env.DATABASE_URL, max: parseInt(process.env.DB_POOL_MAX || '1000', 10), connectionTimeoutMillis: 10000, idleTimeoutMillis: 300000, }); const adapter = new PrismaPg(pool); export const prisma = globalForPrisma.prisma || new PrismaClient({ adapter }); if (process.env.NODE_ENV !== 'production') { globalForPrisma.prisma = prisma; globalForPrisma.pool = pool; }