UNPKG

bb-inspired

Version:

Core library for BB-inspired NestJS backend

34 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationUtils = void 0; const class_validator_1 = require("class-validator"); const class_transformer_1 = require("class-transformer"); const validation_filter_1 = require("../filters/validation.filter"); class ValidationUtils { static async validate(object, validationClass, options) { const transformedObject = (0, class_transformer_1.plainToInstance)(validationClass, object); const errors = await (0, class_validator_1.validate)(transformedObject, { whitelist: true, forbidNonWhitelisted: true, ...options, }); if (errors.length > 0) { throw new validation_filter_1.ValidationException(errors); } return transformedObject; } static async validateSafe(object, validationClass, options) { try { const value = await this.validate(object, validationClass, options); return { isValid: true, value }; } catch (error) { if (error instanceof validation_filter_1.ValidationException) { return { isValid: false, errors: error.validationErrors }; } throw error; } } } exports.ValidationUtils = ValidationUtils; //# sourceMappingURL=validation.js.map