19 lines
532 B
TypeScript
19 lines
532 B
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import fp from 'fastify-plugin';
|
|
|
|
export default fp(async (app) => {
|
|
const prisma = new PrismaClient({
|
|
log: [{ emit: 'event', level: 'error' }, { emit: 'event', level: 'warn' }],
|
|
});
|
|
|
|
prisma.$on('error', (e) => app.log.error({ prisma: e }, 'prisma error'));
|
|
prisma.$on('warn', (e) => app.log.warn({ prisma: e }, 'prisma warn'));
|
|
|
|
await prisma.$connect();
|
|
app.decorate('prisma', prisma);
|
|
|
|
app.addHook('onClose', async () => {
|
|
await prisma.$disconnect();
|
|
});
|
|
});
|