Open tolstenko opened 4 years ago
It seems to be a TypeScript issue. Make sure the target in your tsconfig.json is es6 or higher
@tolstenko Did you resolve this issue?
@tolstenko @douglance did you resolve this question? [2]
adding @Exclude()
to dtoClass
helped me to resolve the issue:
// src/common/abstract.entity.ts
@Exclude()
abstract dtoClass: new (entity: AbstractEntity, options?: any) => T
I'm using the updated version of awesome boilerplate. It's incredible :D
I'm facing a similar issue :S using the abstract entities and abstract dtos. Even updating the target
to ES6 didn't help :S The problem is: using typeorm update in an entity causes it to break, even using @Exclude() property in dtoClass variable in AbstractEntity it still is assuming the need of the dtoClass variable.
The update code should be similar to this:
async update(dataId: string, data: DataEntity): Promise<DataEntity> {
await dataRepository.update(dataId, data); // the problem lies here in data
return await dataRepository.find(dataId);
}
I've tried to break the solution in typeorm save method which is not the best solution, but still got the same error :S
The code should look like this.
async updateWithSave(dataId: string, data: DataEntity): Promise<DataEntity> {
let dataEntity = await this.repo.find(dataId);
dataEntity = { ...dataEntity, ...data, id: dataId, toDto: any }; // the problem lies here in data
return await this.repo.save(dataEntity);
}
The error is: "EntityColumnNotFound: No entity column "dtoClass" was found."
First of all, this lib is awesome!
I am facing the same problem of https://github.com/nestjsx/crud/issues/378
Class constructor UserDto cannot be invoked without 'new'
TypeError: Class constructor UserDto cannot be invoked without 'new'
I modified the boilerplate https://github.com/NarHakobyan/awesome-nest-boilerplate adding the crud controller and crud service.The main differences between your example and the implementation are: I use an AbstractDto with a constructor that receives an AbstractEntity. Here is the AbstractDto:
AbstractEntity:
And on top of that I create my dtos and entities: UserDto
UserEntity
I found some descriptions indicating that I need to change the tsconfig.json target to at least ES6, but it is already there.
My option is to not use a dtos with constructors, right? Will I need to create another dto just for this scenario like the other dto but without constructor? Or could you provide an example using dtos with constructors?
Thanks in advance