1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | exports.__esModule = true;
|
6 | exports["default"] = void 0;
|
7 |
|
8 | var _isPromise = _interopRequireDefault(require("is-promise"));
|
9 |
|
10 | var 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 |
|
38 | var _default = asyncValidation;
|
39 | exports["default"] = _default; |
\ | No newline at end of file |