Initial commit

This commit is contained in:
Jose Selesan
2026-04-08 22:53:11 -03:00
commit 9ae270609d
179 changed files with 28096 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from '@/generated/prisma/client'
const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient }
function hasExpectedDelegates(client: PrismaClient) {
const prismaClient = client as unknown as {
court?: { findMany?: unknown }
sport?: { findMany?: unknown }
}
return (
typeof prismaClient.court?.findMany === 'function' &&
typeof prismaClient.sport?.findMany === 'function'
)
}
function buildPrismaClient() {
const databaseUrl = Bun.env.DATABASE_URL
if (!databaseUrl) {
throw new Error('Missing DATABASE_URL in backend environment.')
}
const adapter = new PrismaPg({
connectionString: databaseUrl,
})
return new PrismaClient({ adapter })
}
export function getPrismaClient() {
if (globalForPrisma.prisma && hasExpectedDelegates(globalForPrisma.prisma)) {
return globalForPrisma.prisma
}
if (globalForPrisma.prisma && !hasExpectedDelegates(globalForPrisma.prisma)) {
void globalForPrisma.prisma.$disconnect()
}
const prisma = buildPrismaClient()
if (Bun.env.NODE_ENV !== 'production') {
globalForPrisma.prisma = prisma
}
return prisma
}
export const db = getPrismaClient()