преобразователь класса и валидатор класса: Показать @exposed name в ошибке валидатора класса
У меня есть проект NestJS, в котором я использую как валидатор класса, так и преобразователь класса, и мне нужно, чтобы преобразователь класса выполнялся до того, как валидатор класса выдаст ошибку.
Учитывая следующий класс:
export class CreateProfileDto {
@IsString()
@Expose({ name: 'name' })
profileName!: string;
@IsBoolean()
@Expose({ name: 'active'})
profileActive!: boolean;
}
Мне нужно выявить ошибки с помощью имени свойства, а не свойства profileName, и то же самое касается другого свойства.
Любая прямая идея, как справиться с этим? Не могу попросить интерфейс прислать мне свойства с разными именами, поэтому мне нужно подстроиться под них.
Я думал сделать это через канал, но не смог использовать его, пока ошибка не взорвалась.
Текущий формат ошибки:
{
"statusCode": 400,
"error": "Bad Request",
"message": [
{
"target": {
"profileName": 1
},
"value": 1,
"property": "profileName",
"children": [],
"constraints": {
"isString": "profileName must be a string"
}
}
]
}
Желаемый формат ошибки:
{
"statusCode": 400,
"error": "Bad Request",
"message": [
{
"target": {
"name": 1
},
"value": 1,
"property": "name",
"children": [],
"constraints": {
"isString": "name must be a string"
}
}
]
}