Fastify Prisma plugin to share the same PrismaClient
across your entire server.
const allTheDucks = await server.prisma.rubberDucky.findMany();
Before using this plugin you will need to have prisma
set up. Once you are all set with prisma
install the package and register the plugin on your server.
npm
$ npm i fastify-prisma
yarn
$ yarn add fastify-prisma
You have two options for registering the plugin:
- Use the plugin as-is or pass in your own configs
- Create a separate client and pass it in (great if you are using a monorepo or other more unique use cases)
javascript
const { PrismaClient } = require('@prisma/client');
const fastifyPrisma = require('fastify-prisma');
// Default
await fastify.register(fastifyPrisma);
// With client
await fastify.register(fastifyPrisma, {
client: new PrismaClient();
});
// with options
await fastify.register(fastifyPrisma, {
clientConfig: {
log: [{ emit: 'event', level: 'query' }]
}
});
typescript
import { PrismaClient } from '@prisma/client';
import fastifyPrisma from 'fastify-prisma';
// Default
await fastify.register(fastifyPrisma);
// With client
await fastify.register(fastifyPrisma, {
client: new PrismaClient();
});
// with options
await fastify.register(fastifyPrisma, {
clientConfig: {
log: [{ emit: 'event', level: 'query' }]
}
});
async function somePlugin (server, opts) {
const ducks = await server.prisma.rubberDucky.findMany();
// do something with the ducks, log for now
server.log.warn({ ducks }, "π₯π₯ There are lots of ducks! π₯π₯");
}
Licensed under MIT.
We'd love to have you join, but we are in closed beta.
You can join our waitlist below.