mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-29 03:02:22 -05:00
24 lines
520 B
TypeScript
24 lines
520 B
TypeScript
import fp from 'fastify-plugin';
|
|
import { FastifyPluginAsync } from 'fastify';
|
|
import { PrismaClient } from '@prisma/client';
|
|
|
|
declare module 'fastify' {
|
|
interface FastifyInstance {
|
|
prisma: PrismaClient;
|
|
}
|
|
}
|
|
|
|
const prismaPlugin: FastifyPluginAsync = fp(async (server, _options) => {
|
|
const prisma = new PrismaClient();
|
|
|
|
await prisma.$connect();
|
|
|
|
server.decorate('prisma', prisma);
|
|
|
|
server.addHook('onClose', async server => {
|
|
await server.prisma.$disconnect();
|
|
});
|
|
});
|
|
|
|
export default prismaPlugin;
|