UNPKG

1.02 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports["default"] = void 0;
7
8var _isPromise = _interopRequireDefault(require("is-promise"));
9
10var asyncValidation = function asyncValidation(fn, start, stop, field) {
11 start(field);
12 var promise = fn();
13
14 if (!(0, _isPromise["default"])(promise)) {
15 throw new Error('asyncValidate function passed to reduxForm must return a promise');
16 }
17
18 var handleErrors = function handleErrors(rejected) {
19 return function (errors) {
20 if (rejected) {
21 if (errors && Object.keys(errors).length) {
22 stop(errors);
23 return errors;
24 } else {
25 stop();
26 throw new Error('Asynchronous validation promise was rejected without errors.');
27 }
28 }
29
30 stop();
31 return Promise.resolve();
32 };
33 };
34
35 return promise.then(handleErrors(false), handleErrors(true));
36};
37
38var _default = asyncValidation;
39exports["default"] = _default;
\No newline at end of file