This commit is contained in:
2023-06-12 20:01:07 +02:00
parent edc42e3750
commit 59b4eb582e
43 changed files with 1799 additions and 245 deletions

View File

@@ -0,0 +1,43 @@
import {
BadRequestException,
INestApplication,
ValidationPipe,
} from '@nestjs/common';
import { ValidationError } from 'class-validator';
export const validationErrorsMapper = {
mapValidationErrorArrayToValidationPipeErrorTypeArray(
errors: ValidationError[],
): ValidationPipeErrorType[] {
return errors.flatMap((error) => {
const constraints = error.constraints ?? [];
return Object.entries(constraints).map(([_, value]) => ({
field: error.property,
message: value,
}));
});
},
};
export function pipesSetup(app: INestApplication) {
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
transform: true,
stopAtFirstError: true,
exceptionFactory: (errors: ValidationError[]) => {
const err =
validationErrorsMapper.mapValidationErrorArrayToValidationPipeErrorTypeArray(
errors,
);
throw new BadRequestException(err);
},
}),
);
}
export type ValidationPipeErrorType = {
field: string;
message: string;
};