преобразователь класса и валидатор класса: Показать @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"
            }
        }
    ]
}

0 ответов

Другие вопросы по тегам