pstream-backend/server/utils/prisma.ts
2026-03-01 22:10:41 +05:30

26 lines
718 B
TypeScript

import { Pool } from 'pg';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '../../generated/client';
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined;
pool: Pool | undefined;
};
const pool =
globalForPrisma.pool ||
new Pool({
connectionString: process.env.DATABASE_URL,
max: Math.max(1, parseInt(process.env.DB_POOL_MAX, 10) || 30),
connectionTimeoutMillis: 10000,
idleTimeoutMillis: 300000,
});
const adapter = new PrismaPg(pool);
export const prisma = globalForPrisma.prisma || new PrismaClient({ adapter });
if (process.env.NODE_ENV !== 'production') {
globalForPrisma.prisma = prisma;
globalForPrisma.pool = pool;
}