Files
ReadMeABook/src/lib/db.ts
T
2026-01-28 11:41:24 -05:00

27 lines
666 B
TypeScript

/**
* 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;