Entity Listenerの@BeforeInsert()と@BeforeUpdate()を使って自動でvalidateする。手動でもできるのでおすすめ。
import { IsNotEmpty, validate } from 'class-validator';
import { BeforeInsert, BeforeUpdate, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
@IsNotEmpty()
firstName: string;
@BeforeInsert()
@BeforeUpdate()
async validate(): Promise<void> {
for (const error of await validate(this)) {
throw new Error(JSON.stringify(error.constraints));
}
}
}