2.0.1 • Published 1 day ago
@joggr/fastify-prisma v2.0.1
fastify-prisma
Fastify Prisma plugin to share the same PrismaClient
across your entire server.
const allTheDucks = await server.prisma.rubberDucky.findMany();
Getting Started
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.
Install the package
npm
$ npm i @joggr/fastify-prisma
yarn
$ yarn add @joggr/fastify-prisma
Register the plugin
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('@joggr/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 '@joggr/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' }]
}
});
Accessing the prisma
client
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! 🐥🐥");
}
License
Licensed under MIT.