Files
fiberops-api/src/common/pipes/zod-validation.pipe.ts
2026-04-13 09:36:55 +08:00

21 lines
602 B
TypeScript

import { PipeTransform, BadRequestException } from '@nestjs/common';
import { ZodSchema, ZodError } from 'zod';
export class ZodValidationPipe implements PipeTransform {
constructor(private schema: ZodSchema) {}
transform(value: unknown) {
try {
return this.schema.parse(value);
} catch (error) {
if (error instanceof ZodError) {
const messages = error.errors.map(
(e) => `${e.path.join('.')}: ${e.message}`,
);
throw new BadRequestException(messages.join('; '));
}
throw new BadRequestException('Validation failed');
}
}
}