UNPKG

react-application-core

Version:

A react-based application core for the business applications.

77 lines 3.2 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidatorUtils = void 0; var R = require("ramda"); var type_1 = require("./type"); var definition_1 = require("../definition"); var multi_field_1 = require("./multi-field"); var object_1 = require("./object"); var password_1 = require("./password"); /** * @stable [22.01.2021] * @param value */ var notEmptyMultiEntityChecker = function (value) { return object_1.ObjectUtils.isObjectNotEmpty(multi_field_1.MultiFieldUtils.multiFieldValueAsEntities(value)); }; /** * @stable [22.01.2021] */ var ValidationRules = (_a = {}, _a[definition_1.ValidationRulesEnum.EMAIL] = type_1.TypeUtils.isEmail, _a[definition_1.ValidationRulesEnum.EMAIL_OPTIONAL] = type_1.TypeUtils.isOptionalEmail, _a[definition_1.ValidationRulesEnum.NOT_EMPTY_MULTI_ENTITY] = notEmptyMultiEntityChecker, _a[definition_1.ValidationRulesEnum.NOT_EMPTY_OBJECT] = type_1.TypeUtils.isNotEmptyObject, _a[definition_1.ValidationRulesEnum.NOT_EMPTY_STRING] = type_1.TypeUtils.isNotEmptyString, _a[definition_1.ValidationRulesEnum.POSITIVE_NUMBER] = type_1.TypeUtils.isPositiveNumber, _a[definition_1.ValidationRulesEnum.POSITIVE_NUMBER_LIKE] = type_1.TypeUtils.isPositiveNumberLike, _a[definition_1.ValidationRulesEnum.POSITIVE_OPTIONAL_NUMBER_LIKE] = type_1.TypeUtils.isPositiveOptionalNumberLike, _a[definition_1.ValidationRulesEnum.POSITIVE_OR_NEGATIVE_NUMBER] = type_1.TypeUtils.isNumber, _a[definition_1.ValidationRulesEnum.POSITIVE_OR_NEGATIVE_NUMBER_LIKE] = type_1.TypeUtils.isPositiveOrNegativeNumberLike, _a[definition_1.ValidationRulesEnum.POSITIVE_OR_NEGATIVE_OPTIONAL_NUMBER_LIKE] = type_1.TypeUtils.isPositiveOrNegativeOptionalNumberLike, _a[definition_1.ValidationRulesEnum.STRING] = type_1.TypeUtils.isString, _a[definition_1.ValidationRulesEnum.STRONG_OPTIONAL_PASSWORD] = password_1.PasswordUtils.isStrongOptional, _a[definition_1.ValidationRulesEnum.STRONG_PASSWORD] = password_1.PasswordUtils.isStrong, _a); /** * @stable [22.01.2021] * @param payloads * @param checkedObject */ var validate = function (payloads, checkedObject) { var data = Object.create(null); var valid = true; R.forEachObjIndexed(function (rules, fieldName) { var result = Object.create(null); data[fieldName] = result; [].concat(rules) .forEach(function (ruleId) { var res = result[ruleId] = ValidationRules[ruleId](checkedObject[fieldName]); valid = valid && res; }); }, payloads); return { data: data, valid: valid, }; }; /** * @stable [22.01.2021] * @param rules */ var isValid = function (rules) { return R.reduce(function (a, b) { return a && b; }, true, Object.values(rules)); }; /** * @stable [22.01.2021] */ var ValidatorUtils = /** @class */ (function () { function ValidatorUtils() { } ValidatorUtils.isValid = isValid; ValidatorUtils.validate = validate; return ValidatorUtils; }()); exports.ValidatorUtils = ValidatorUtils; //# sourceMappingURL=validator.js.map