react-validation-mixin
Version:
Simple Validation Mixin for React.
47 lines (34 loc) • 1.79 kB
JavaScript
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = validationFactory;
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _lodash = require('lodash.isempty');
var _lodash2 = _interopRequireDefault(_lodash);
var _lodash3 = require('lodash.get');
var _lodash4 = _interopRequireDefault(_lodash3);
var _utils = require('./utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function validationFactory(strategy) {
var _strategy = typeof strategy === 'function' ? strategy() : strategy;
(0, _invariant2.default)((0, _utils.defined)(_strategy), 'Validation strategy not provided. A user provided strategy is expected.');
(0, _invariant2.default)(typeof _strategy !== 'function', 'Validation strategy improperly initialized. Refer to documentation of the provided strategy.');
return _extends({
getValidationMessages: function getValidationMessages() {
var errors = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var key = arguments[1];
if ((0, _lodash2.default)(errors)) {
return [];
}
if (key === undefined) {
return (0, _utils.flattenErrorsObject)(errors);
}
return (0, _lodash4.default)(errors, key);
},
isValid: function isValid(errors, key) {
if (!(0, _utils.defined)(key)) return (0, _lodash2.default)(errors);
return (0, _lodash2.default)((0, _lodash4.default)(errors, key));
}
}, _strategy);
}
;