30 lines
667 B
TypeScript
30 lines
667 B
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import { logger } from '../utils/logger';
|
|
import { env } from '../utils/env';
|
|
|
|
const debugEvent = {
|
|
emit: 'event',
|
|
level: 'query',
|
|
} as const;
|
|
|
|
const log = env.dbDebug ? [debugEvent] : [];
|
|
|
|
export const prisma = new PrismaClient({
|
|
log,
|
|
});
|
|
|
|
if (env.dbDebug) {
|
|
prisma.$on('query', async (e) => {
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
// @ts-ignore
|
|
// console.log(`${e.query} ${e.params}`);
|
|
|
|
const params = JSON.parse(e.params);
|
|
logger.info(
|
|
e.query.replace(/\$(\d+)/g, (_, index) => {
|
|
return "'" + params[Number(index) - 1] + "'";
|
|
})
|
|
);
|
|
});
|
|
}
|