валидатор класса enum в верхнем регистре - PullRequest
0 голосов
/ 19 апреля 2020

Привет, ребята, у меня есть anum, как это

export enum UserRole {
  USER,
  ADMIN,
  BLOGGER
}

и create.user.d, как это

import { IsEmail, IsEnum, IsNotEmpty, IsOptional } from 'class-validator';
import { UserRole } from './user.entity';

export class CreateUserDto {
  @IsEmail()
  email: string;

  @IsNotEmpty()
  firstName: string;

  @IsNotEmpty()
  lastName: string;

  @IsOptional()
  username: string;

  @IsOptional()
  @IsEnum(UserRole)
  role: UserRole;

  @IsNotEmpty()
  password: string;
}

Теперь проверка роли не завершится ошибкой, если я отправлю только верхний регистр роли ( «ADMIN», «USER») или «BLOGGER». Как сделать класс-валидатор нечувствительным к регистру, я имею в виду валидацию true также для 'admin' 'aDmIn' Любая подсказка?

1 Ответ

1 голос
/ 20 апреля 2020

тогда вам нужно подтверждение регулярного выражения через @Matches.

  @IsOptional()
  @Matches(`^${Object.values(UserRole).filter(v => typeof v !== "number").join('|')}$`, 'i')
  role: UserRole;

окончательное правило - /^USER|ADMIN|BLOGGER$/i, где i игнорирует регистр.

...