Files
chad/server/plugins/prisma.ts

33 lines
788 B
TypeScript

import type { FastifyPluginAsync } from 'fastify'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
import fp from 'fastify-plugin'
import { PrismaClient } from '../prisma/generated-client/client.ts'
declare module 'fastify' {
interface FastifyInstance {
prisma: PrismaClient
}
}
const plugin: FastifyPluginAsync = fp(async (fastify) => {
const prisma = new PrismaClient({
log: ['query', 'error', 'warn'],
adapter: new PrismaBetterSqlite3({
url: process.env.DATABASE_URL!,
}),
})
await prisma.$connect()
fastify.log.info('Testing DB Connection. OK')
fastify.decorate('prisma', prisma)
fastify.addHook('onClose', async (fastify) => {
await fastify.prisma.$disconnect()
})
}, {
name: 'prisma',
})
export default plugin