bb-inspired
Version:
Core library for BB-inspired NestJS backend
34 lines • 1.35 kB
JavaScript
;
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