nartc / mapper

🔥 An Object-Object AutoMapper for TypeScript 🔥
https://automapperts.netlify.app/
MIT License
984 stars 88 forks source link

@nestjs/swagger #554

Open KIMBEOBWOO opened 1 year ago

KIMBEOBWOO commented 1 year ago

Is there an existing issue for this?

Describe the issue

If you specify a null property type for an Entity class as a Union type such as "string | null", the property is not automatically mapped.

Models/DTOs/VMs

In Destination class file test.entity.ts

@AutoMap()
@Column({ type: 'text', nullable: true })
test?: string | null;

In Source class file test.dto.ts

@AutoMap()
@IsString()
@IsOptional()
test?: string | null;

Mapping configuration

No response

Steps to reproduce

const dto = new TestDto();
dto.test = "test string";

const entity =  this.mapper.map(dto, TestDto, TestEntity);

console.log(entity);

Expected behavior

The results I expected are as follows

{
  "test": "test string"
}

But in reality,

{ }

Screenshots

No response

Minimum reproduction code

No response

Package

Other package and its version

No response

AutoMapper version

8.7.7

Additional context

No response

KIMBEOBWOO commented 1 year ago

However, if you modify the AutoMap Decorator in the Entity file as follows, it will work fine.

@AutoMap(() => String) // <-- implicit String constructor 
@Column({ type: 'text', nullable: true })
test?: string | null;
dkhrunov commented 1 year ago

However, if you modify the AutoMap Decorator in the Entity file as follows, it will work fine.

@AutoMap(() => String) // <-- implicit String constructor 
@Column({ type: 'text', nullable: true })
test?: string | null;

Hi, this is doesn't work for me( Only if I add @AutoMap(() => String) both to the entity and dto.

ghost commented 8 months ago

What if the value is Enum ?