25 lines
635 B
TypeScript
25 lines
635 B
TypeScript
import { neonConfig } from '@neondatabase/serverless'
|
|
import { PrismaNeon } from '@prisma/adapter-neon'
|
|
import { PrismaClient } from '@prisma/client'
|
|
import ws from 'ws'
|
|
|
|
neonConfig.webSocketConstructor = ws
|
|
|
|
const connectionString = process.env.DATABASE_URL
|
|
|
|
if (!connectionString) {
|
|
throw new Error('DATABASE_URL is required')
|
|
}
|
|
|
|
const globalForPrisma = globalThis as typeof globalThis & {
|
|
prisma?: PrismaClient
|
|
}
|
|
|
|
const adapter = new PrismaNeon({ connectionString })
|
|
|
|
export const prisma = globalForPrisma.prisma || new PrismaClient({ adapter })
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
globalForPrisma.prisma = prisma
|
|
}
|