UNPKG

@webnotion-net/typescript-model-validator

Version:

Flexible and extensible library for validating data models in TypeScript

69 lines (68 loc) 3.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var Violations_1 = __importDefault(require("./violations/Violations")); var Violation_1 = __importDefault(require("./violations/Violation")); var Validator = /** @class */ (function () { function Validator() { } Validator.prototype.validate = function (data) { var violations = []; if (this.isValidatableModel(data)) { for (var _i = 0, _a = Object.entries(data === null || data === void 0 ? void 0 : data.getConstraints()); _i < _a.length; _i++) { var _b = _a[_i], propertyName = _b[0], constraints = _b[1]; for (var _c = 0, constraints_1 = constraints; _c < constraints_1.length; _c++) { var constraint = constraints_1[_c]; if (!constraint.validate(data[propertyName])) { var violation = new Violation_1.default(propertyName, constraint.getErrorMessage()); violations.push(violation); } } } } if (this.isGloballyValidatableModel(data)) { for (var _d = 0, _e = Object.entries(data === null || data === void 0 ? void 0 : data.getGlobalConstraints()); _d < _e.length; _d++) { var _f = _e[_d], key = _f[0], constraint = _f[1]; if (!constraint.validate(data)) { var violation = new Violation_1.default(null, constraint.getErrorMessage()); violations.push(violation); } } } return new Violations_1.default(violations); }; Validator.prototype.validatePlain = function (data, constraints) { var violations = []; for (var _i = 0, _a = Object.entries(constraints); _i < _a.length; _i++) { var _b = _a[_i], propertyName = _b[0], propertyConstraints = _b[1]; for (var _c = 0, propertyConstraints_1 = propertyConstraints; _c < propertyConstraints_1.length; _c++) { var constraint = propertyConstraints_1[_c]; if (!constraint.validate(data[propertyName])) { var violation = new Violation_1.default(propertyName, constraint.getErrorMessage()); violations.push(violation); } } } return new Violations_1.default(violations); }; Validator.prototype.validateProperty = function (propertyName, data, constraints) { var violations = []; constraints.forEach(function (constraint) { if (!constraint.validate(data)) { var violation = new Violation_1.default(propertyName, constraint.getErrorMessage()); violations.push(violation); } }); return new Violations_1.default(violations); }; Validator.prototype.isValidatableModel = function (data) { return data.getConstraints !== undefined; }; Validator.prototype.isGloballyValidatableModel = function (data) { return data.getGlobalConstraints !== undefined; }; return Validator; }()); exports.default = Validator;