(namePath, value, rules, options, validateFirst, messageVariables)
| 88383 | } |
| 88384 | |
| 88385 | function validateRules(namePath, value, rules, options, validateFirst, messageVariables) { |
| 88386 | var name = namePath.join('.'); // Fill rule with context |
| 88387 | |
| 88388 | var filledRules = rules.map(function (currentRule) { |
| 88389 | var originValidatorFunc = currentRule.validator; |
| 88390 | |
| 88391 | if (!originValidatorFunc) { |
| 88392 | return currentRule; |
| 88393 | } |
| 88394 | |
| 88395 | return Object(_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(Object(_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])({}, currentRule), {}, { |
| 88396 | validator: function validator(rule, val, callback) { |
| 88397 | var hasPromise = false; // Wrap callback only accept when promise not provided |
| 88398 | |
| 88399 | var wrappedCallback = function wrappedCallback() { |
| 88400 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { |
| 88401 | args[_key] = arguments[_key]; |
| 88402 | } |
| 88403 | |
| 88404 | // Wait a tick to make sure return type is a promise |
| 88405 | Promise.resolve().then(function () { |
| 88406 | Object(rc_util_es_warning__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"])(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.'); |
| 88407 | |
| 88408 | if (!hasPromise) { |
| 88409 | callback.apply(void 0, args); |
| 88410 | } |
| 88411 | }); |
| 88412 | }; // Get promise |
| 88413 | |
| 88414 | |
| 88415 | var promise = originValidatorFunc(rule, val, wrappedCallback); |
| 88416 | hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function'; |
| 88417 | /** |
| 88418 | * 1. Use promise as the first priority. |
| 88419 | * 2. If promise not exist, use callback with warning instead |
| 88420 | */ |
| 88421 | |
| 88422 | Object(rc_util_es_warning__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"])(hasPromise, '`callback` is deprecated. Please return a promise instead.'); |
| 88423 | |
| 88424 | if (hasPromise) { |
| 88425 | promise.then(function () { |
| 88426 | callback(); |
| 88427 | }).catch(function (err) { |
| 88428 | callback(err || ' '); |
| 88429 | }); |
| 88430 | } |
| 88431 | } |
| 88432 | }); |
| 88433 | }); |
| 88434 | var summaryPromise; |
| 88435 | |
| 88436 | if (validateFirst === true) { |
| 88437 | // >>>>> Validate by serialization |
| 88438 | summaryPromise = new Promise( /*#__PURE__*/function () { |
| 88439 | var _ref = Object(_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee(resolve, reject) { |
| 88440 | var i, errors; |
| 88441 | return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee$(_context) { |
| 88442 | while (1) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…