storenest-commerce
Version:
Complete e-commerce SDK for Storenest platform with React components, multi-language support, secure checkout, and enterprise-grade security
41 lines (40 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const client_1 = require("@prisma/client");
const db_config_1 = require("./db-config");
let prisma;
const createPrismaClient = () => {
const config = (0, db_config_1.getDbConfig)();
return new client_1.PrismaClient({
datasources: {
db: {
url: process.env.DATABASE_URL,
},
},
log: config.logging,
errorFormat: 'pretty',
});
};
if (process.env.NODE_ENV === 'production') {
prisma = createPrismaClient();
}
else {
// In development, use a global instance to prevent multiple connections during hot reload
const globalAny = global;
if (!globalAny.prisma) {
globalAny.prisma = createPrismaClient();
}
prisma = globalAny.prisma;
}
// Graceful shutdown handling
const gracefulShutdown = async () => {
console.log('Disconnecting Prisma client...');
await prisma.$disconnect();
process.exit(0);
};
if (process.env.NODE_ENV === 'production') {
process.on('beforeExit', gracefulShutdown);
process.on('SIGINT', gracefulShutdown);
process.on('SIGTERM', gracefulShutdown);
}
exports.default = prisma;