umami/lib/db.js
2022-07-07 05:55:43 -07:00

38 lines
653 B
JavaScript

import { PrismaClient } from '@prisma/client';
import chalk from 'chalk';
BigInt.prototype.toJSON = function () {
return this.toString();
};
const options = {
log: [
{
emit: 'event',
level: 'query',
},
],
};
function logQuery(e) {
console.log(chalk.yellow(e.params), '->', e.query, chalk.greenBright(`${e.duration}ms`));
}
let prisma;
if (process.env.NODE_ENV === 'production') {
prisma = new PrismaClient(options);
} else {
if (!global.prisma) {
global.prisma = new PrismaClient(options);
}
prisma = global.prisma;
}
if (process.env.LOG_QUERY) {
prisma.$on('query', logQuery);
}
export default prisma;