@data-driven-forms/react-form-renderer
Version:
React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.
46 lines (35 loc) • 1.34 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
var composeValidators = function composeValidators() {
var validators = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
return function (value, allValues, meta) {
var _validators = (0, _toArray2["default"])(validators),
initialValidator = _validators[0],
sequenceValidators = _validators.slice(1);
var resolveValidator = function resolveValidator(error, validator) {
if (error) {
return error;
}
if (typeof validator !== 'function') {
return undefined;
}
return validator(value, allValues, meta);
};
var result = resolveValidator(undefined, initialValidator);
if (result !== null && result !== void 0 && result.then) {
return result.then(function () {
return sequenceValidators.reduce(resolveValidator, undefined);
})["catch"](function (error) {
return error;
});
}
return sequenceValidators.reduce(resolveValidator, result);
};
};
var _default = composeValidators;
exports["default"] = _default;