// 3rd-party
import fp from "fastify-plugin";
import { FastifyPluginAsync } from "fastify";
// generated via script[generate:script]
import { PrismaClient } from "@prisma/client";
export const prismaPlugin: FastifyPluginAsync<{ prisma: PrismaClient }> = fp(
async (server, { prisma }) => {
await prisma.$connect();
server.decorate("prisma", {
getter: () => prisma,
});
server.decorateRequest("prisma", {
getter: () => prisma,
});
server.addHook("onClose", async (server) => {
await server.prisma.$disconnect();
});
}
);