mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-03 12:50:09 +00:00
27 lines
666 B
TypeScript
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;
|