YesPlayMusic/packages/server/src/plugins/prismaPlugin.ts
2023-01-24 16:29:33 +08:00

25 lines
687 B
TypeScript

import fp from 'fastify-plugin'
import { FastifyPluginAsync } from 'fastify'
import { PrismaClient } from '@prisma/client'
// Use TypeScript module augmentation to declare the type of server.prisma to be PrismaClient
declare module 'fastify' {
interface FastifyInstance {
prisma: PrismaClient
}
}
const prismaPlugin: FastifyPluginAsync = fp(async (server, options) => {
const prisma = new PrismaClient()
await prisma.$connect()
// Make Prisma Client available through the fastify server instance: server.prisma
server.decorate('prisma', prisma)
server.addHook('onClose', async server => {
await server.prisma.$disconnect()
})
})
export default prismaPlugin