vegardit / prisma-generator-nestjs-dto

Generates NestJS DTO classes from Prisma Schema
Apache License 2.0
274 stars 76 forks source link

Missing generated relation DTO's #15

Open paultannenbaum opened 2 years ago

paultannenbaum commented 2 years ago

Hi @benkroeger, thanks for replying back to my issue about relations in #14 .

So I just tried your suggestion of adding in the annotated relations, but I am now running into more issues. The create-${resource}.dto.ts is being appropriately updated with the new relations, however those relation entities are not being generated themselves. Here is an example:

schema.prisma

generator nestjsDto {
  provider                        = "prisma-generator-nestjs-dto"
  output                          = "./schema"
  outputToNestJsResourceStructure = "true"
  entitySuffix                    = "Entity"
}

model Asset {
    ...otherProps
    /// @DtoRelationCanCreateOnCreate
    venue                       Venue           @relation(fields: [venueId], references: [id])
    venueId                     Int
}

create-asset.dto.ts

import { ApiExtraModels } from '@nestjs/swagger';
import { CreateVenueDto } from '../../venue/dto/create-venue.dto';

export class CreateAssetVenueRelationInputDto {
  create: CreateVenueDto;
}

@ApiExtraModels(CreateVenueDtoEntity, CreateAssetVenueRelationInputDtoEntity)
export class CreateAssetDto {
  ...otherProps
  venue: CreateAssetVenueRelationInputDtoEntity;
}

In the above example, the CreateVenueDtoEntity and CreateAssetVenueRelationInputDtoEntity called in the @ApiExtraModels decorator do not exist/have not been generated, and neither has the CreateAssetVenueRelationInputDtoEntity found in the DTO definition.

Because of this, the TS compiler is failing. Any ideas what is going wrong here?

paultannenbaum commented 2 years ago

@benkroeger any idea on if this issue is something unique to me, or an actual bug with the repo?

benkroeger commented 2 years ago

this appears to be an issue with the entitySuffix property. Can you (temporarily) work without specifying it? Also, a PR fixing this is highly welcome

piradata commented 1 year ago

this appears to be an issue with the entitySuffix property. Can you (temporarily) work without specifying it? Also, a PR fixing this is highly welcome

Why do you think entitySuffix is causing this behaviour? Can you show the part of the code that is to blame?

Would like to open a PR fixing it because ive run into the same problem, but as i am new to the codebase I dont even know where the problem is located.

benkroeger commented 1 year ago

because with en empty entitySuffix it works as expected :) generateRelationInput computes the class name without the Entity suffix while the class is actually generated with a different name