UNPKG

yarfl

Version:

Yet Another Redux Forms Library

45 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Validator = require("validatorjs"); var utils_1 = require("./utils"); var common = function (config) { return function (state) { var errorMessages = config.errorMessages, attributeFormatter = config.attributeFormatter; var fields = state.fields; var data = utils_1.extract(fields, 'value', { flatten: true }); var rules = utils_1.extract(fields, 'rules', { ignoreEmptyStrings: true, flatten: true }); // TODO: make this a configurable action var validation = (errorMessages || []).length ? new Validator(data, rules, errorMessages) : new Validator(data, rules); validation.setAttributeFormatter(attributeFormatter || defaultAttributeFormatter); return validation; }; }; var defaultAttributeFormatter = function (attribute) { return utils_1.titleCase(attribute.split('.').reverse()[0]).toLowerCase(); }; exports.validatorFactory = function (config) { return function (state) { var validation = common(config)(state); validation.check(); // to trigger validation return validation; }; }; exports.asyncValidatorFactory = function (config) { return function (state) { var validation = common(config)(state); return new Promise(function (resolve) { validation.checkAsync(function () { return resolve(validation); }, function () { return resolve(validation); }); }); }; }; exports.registerCustomRules = function (customRules) { return customRules.map(function (rule) { var name = rule.name, callback = rule.callback, message = rule.message; if (callback.length > 3) { Validator.registerAsync(name, callback, message); return true; } Validator.register(name, callback, message); return false; }).some(function (isAsync) { return isAsync; }); }; exports.reigsterErrorMessages = function (messages) { Validator.setMessages('', messages); }; //# sourceMappingURL=validator.js.map