Skip to content

Easy Prisma support for your NestJS application

License

Notifications You must be signed in to change notification settings

notiz-dev/nestjs-prisma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

249cc88 · Feb 25, 2025
Feb 25, 2025
Sep 28, 2022
Feb 2, 2024
Feb 25, 2025
Feb 2, 2024
Oct 5, 2022
Feb 2, 2024
Aug 18, 2021
Jun 19, 2023
Oct 5, 2022
Jan 28, 2025
Oct 4, 2023
Mar 10, 2021
Feb 2, 2024
Apr 28, 2023
Aug 6, 2020
Apr 17, 2023
Feb 25, 2025
Feb 25, 2025
Sep 1, 2020
Sep 1, 2020
Jan 28, 2025

Repository files navigation

nestjs-prisma

Easy Prisma support for your NestJS application.

Build Status Total Downloads npm package License

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.

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.