nestjs-prisma
Easy Prisma support for your NestJS application.
Installation
Automatic Install
Use the nest add command to automatically setup the library, Prisma and Docker (optionally):
nest add nestjs-prisma
Manual Install
Add nestjs-prisma library to your NestJS application:
# npm
npm install nestjs-prisma
# yarn
yarn add nestjs-prisma
Furthermore, setup Prisma in your NestJS application, if you haven't already.
npm i -D prisma
npm install @prisma/client
npx prisma init
Basic usage
Add PrismaModule to the imports section in your AppModule or other modules to gain access to PrismaService.
import { Module } from '@nestjs/common';
import { PrismaModule } from 'nestjs-prisma';
@Module({
  imports: [PrismaModule.forRoot()],
})
export class AppModule {}
Use the PrismaService via dependency injection in your controller, resolver, services, guards and more:
import { Injectable } from '@nestjs/common';
import { PrismaService } from 'nestjs-prisma';
@Injectable()
export class AppService {
  constructor(private prisma: PrismaService) {}
  users() {
    return this.prisma.user.findMany();
  }
  user(userId: string) {
    return this.prisma.user.findUnique({
      where: { id: userId },
    });
  }
}
You have access to all exposed methods and arguments of the generated PrismaClient through PrismaService.
Documentation
Visit our official documentation.
Contributing
You are welcome to contribute to this project.
The code is split up into three directories:
+-- docs
+-- examples
+-- lib
+-- schematics
The docs directory contains an astro website and the docs content pages.
The examples directory contains example applications.
The lib directory contains everything exposed by nestjs-prisma as a library.
The schematics directory contains the blue prints for installing the library with the schematic command.
Here are some tips if you like to make changes to the schematics.
Install @angular-devkit/schematics-cli to be able to use schematics command
npm i -g @angular-devkit/schematics-cli
Now build the schematics and run the schematic.
npm run build:schematics
# or
npm run dev:schematics
# dry-run
schematics .:nest-add
# execute schematics
schematics .:nest-add --debug false
# or
schematics .:nest-add --dry-run false
Helpful article about Custom Angular Schematics which also applies to Nest.