2.0.10 • Published 1 year ago

prisma-generator-nestjs-swagger v2.0.10

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

prisma-generator-nestjs-swagger

This generator is used to create all the possible dto classes you'll need for prisma crud operations, while also supporting open-api specs, including:

  • Create
  • Delete
  • Find
  • Update

It includes an extended ValidationPipe serializer that will transform the DTO to match the expected prisma query object. It includes support for pagination (skip/take or cursor), filtering and ordering.

Getting Started

  1. Install the generator
npm i prisma-generator-nestjs-swagger
  1. Inside your prisma schema, add the following:
generator nestJsSwagger {
  provider = "prisma-generator-nestjs-swagger"
}

The output will be generated to:

node_modules/@generated/swagger
  1. Add the ValidationPipe as a global pipe:
import { ValidationPipe } from '@nestjs/common';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.useGlobalPipes(new ValidationPipe({transform: true}));

  await app.listen(3000);
}
  1. Import & use the generated DTOs (based on code generated in example):
import { FindManyUserDto } from '@generated/swagger';
import { Controller, Get, Query, Req, Res } from '@nestjs/common';

// assumed import of prisma wrapped service
import { PrismaService } from '../prisma/prisma.service';

@Controller()
export class UserController {
  constructor(private prisma: PrismaService) {
  }

  @Get('/users')
  async getUsers(@Query() query: FindManyUserDto, @Res() res) {
    const value = await this.prisma.user.findMany({
      cursor: query.cursor,
      orderBy: query.orderBy,
      skip: query.skip,
      take: query.take,
      where: query.where
    });

    return res.send(value);
  }
}

Example

See our this doc for an example output

2.0.7

1 year ago

2.0.9

1 year ago

2.0.10

1 year ago

2.0.8

1 year ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago