/** * Component: Database Client * Documentation: documentation/backend/database.md */ import { PrismaClient } from '@/generated/prisma/client'; // Prevent multiple instances of Prisma Client in development const globalForPrisma = globalThis as unknown as { prisma: PrismaClient | undefined; }; export const prisma = globalForPrisma.prisma ?? new PrismaClient({ log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'], }); if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma; // Graceful shutdown process.on('beforeExit', async () => { await prisma.$disconnect(); }); export default prisma;