Files
global_it24_landing/nextjs_space/lib/prisma.ts

23 lines
696 B
TypeScript

import { PrismaClient } from '@prisma/client'
// Singleton pattern для Prisma Client
// Использует lazy initialization - клиент создается только при первом использовании
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
if (typeof window === 'undefined') {
process.on('beforeExit', async () => {
await prisma.$disconnect()
})
}