d3ae7e344d6533a0edbf46b11301eb66.json 33.9 KB
{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n *   `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n  return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n    var key = str.slice(2, -1);\n    return kv[key];\n  });\n}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n  var kv = _objectSpread(_objectSpread({}, rule), {}, {\n    name: name,\n    enum: (rule.enum || []).join(', ')\n  });\n\n  var replaceFunc = function replaceFunc(template, additionalKV) {\n    return function () {\n      return replaceMessage(template, _objectSpread(_objectSpread({}, kv), additionalKV));\n    };\n  };\n  /* eslint-disable no-param-reassign */\n\n\n  function fillTemplate(source) {\n    var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    Object.keys(source).forEach(function (ruleName) {\n      var value = source[ruleName];\n\n      if (typeof value === 'string') {\n        target[ruleName] = replaceFunc(value, messageVariables);\n      } else if (value && _typeof(value) === 'object') {\n        target[ruleName] = {};\n        fillTemplate(value, target[ruleName]);\n      } else {\n        target[ruleName] = value;\n      }\n    });\n    return target;\n  }\n  /* eslint-enable */\n\n\n  return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n  return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n  _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, value, rule, options, messageVariables) {\n    var cloneRule, subRuleField, validator, messages, result, subResults;\n    return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n            subRuleField = null;\n\n            if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n              subRuleField = cloneRule.defaultField;\n              delete cloneRule.defaultField;\n            }\n\n            validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n            messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n            validator.messages(messages);\n            result = [];\n            _context2.prev = 7;\n            _context2.next = 10;\n            return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n          case 10:\n            _context2.next = 15;\n            break;\n\n          case 12:\n            _context2.prev = 12;\n            _context2.t0 = _context2[\"catch\"](7);\n\n            if (_context2.t0.errors) {\n              result = _context2.t0.errors.map(function (_ref2, index) {\n                var message = _ref2.message;\n                return (// Wrap ReactNode with `key`\n\n                  /*#__PURE__*/\n                  React.isValidElement(message) ? /*#__PURE__*/React.cloneElement(message, {\n                    key: \"error_\".concat(index)\n                  }) : message\n                );\n              });\n            } else {\n              console.error(_context2.t0);\n              result = [messages.default()];\n            }\n\n          case 15:\n            if (!(!result.length && subRuleField)) {\n              _context2.next = 20;\n              break;\n            }\n\n            _context2.next = 18;\n            return Promise.all(value.map(function (subValue, i) {\n              return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n            }));\n\n          case 18:\n            subResults = _context2.sent;\n            return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n              return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n            }, []));\n\n          case 20:\n            return _context2.abrupt(\"return\", result);\n\n          case 21:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, null, [[7, 12]]);\n  }));\n  return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n  var name = namePath.join('.'); // Fill rule with context\n\n  var filledRules = rules.map(function (currentRule) {\n    var originValidatorFunc = currentRule.validator;\n\n    if (!originValidatorFunc) {\n      return currentRule;\n    }\n\n    return _objectSpread(_objectSpread({}, currentRule), {}, {\n      validator: function validator(rule, val, callback) {\n        var hasPromise = false; // Wrap callback only accept when promise not provided\n\n        var wrappedCallback = function wrappedCallback() {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          } // Wait a tick to make sure return type is a promise\n\n\n          Promise.resolve().then(function () {\n            warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n            if (!hasPromise) {\n              callback.apply(void 0, args);\n            }\n          });\n        }; // Get promise\n\n\n        var promise = originValidatorFunc(rule, val, wrappedCallback);\n        hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n        /**\n         * 1. Use promise as the first priority.\n         * 2. If promise not exist, use callback with warning instead\n         */\n\n        warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n        if (hasPromise) {\n          promise.then(function () {\n            callback();\n          }).catch(function (err) {\n            callback(err || ' ');\n          });\n        }\n      }\n    });\n  });\n  var summaryPromise;\n\n  if (validateFirst === true) {\n    // >>>>> Validate by serialization\n    summaryPromise = new Promise( /*#__PURE__*/function () {\n      var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n        var i, errors;\n        return _regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                i = 0;\n\n              case 1:\n                if (!(i < filledRules.length)) {\n                  _context.next = 11;\n                  break;\n                }\n\n                _context.next = 4;\n                return validateRule(name, value, filledRules[i], options, messageVariables);\n\n              case 4:\n                errors = _context.sent;\n\n                if (!errors.length) {\n                  _context.next = 8;\n                  break;\n                }\n\n                reject(errors);\n                return _context.abrupt(\"return\");\n\n              case 8:\n                i += 1;\n                _context.next = 1;\n                break;\n\n              case 11:\n                /* eslint-enable */\n                resolve([]);\n\n              case 12:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee);\n      }));\n\n      return function (_x6, _x7) {\n        return _ref.apply(this, arguments);\n      };\n    }());\n  } else {\n    // >>>>> Validate by parallel\n    var rulePromises = filledRules.map(function (rule) {\n      return validateRule(name, value, rule, options, messageVariables);\n    });\n    summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n      if (!errors.length) {\n        return [];\n      }\n\n      return Promise.reject(errors);\n    });\n  } // Internal catch error to avoid console error log.\n\n\n  summaryPromise.catch(function (e) {\n    return e;\n  });\n  return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n  return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n  _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n    return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n              var _ref3;\n\n              var errors = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(errorsList));\n\n              return errors;\n            }));\n\n          case 1:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3);\n  }));\n  return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n  return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n  _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(rulePromises) {\n    var count;\n    return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            count = 0;\n            return _context4.abrupt(\"return\", new Promise(function (resolve) {\n              rulePromises.forEach(function (promise) {\n                promise.then(function (errors) {\n                  if (errors.length) {\n                    resolve(errors);\n                  }\n\n                  count += 1;\n\n                  if (count === rulePromises.length) {\n                    resolve([]);\n                  }\n                });\n              });\n            }));\n\n          case 2:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4);\n  }));\n  return _finishOnFirstFailed.apply(this, arguments);\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-field-form/es/utils/validateUtil.js"],"names":["_toConsumableArray","_defineProperty","_regeneratorRuntime","_asyncToGenerator","_typeof","_objectSpread","RawAsyncValidator","React","warning","setValues","defaultValidateMessages","AsyncValidator","replaceMessage","template","kv","replace","str","key","slice","convertMessages","messages","name","rule","messageVariables","enum","join","replaceFunc","additionalKV","fillTemplate","source","target","arguments","length","undefined","Object","keys","forEach","ruleName","value","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","apply","mark","_callee2","options","cloneRule","subRuleField","validator","result","subResults","wrap","_callee2$","_context2","prev","next","type","defaultField","validateMessages","Promise","resolve","validate","t0","errors","map","_ref2","index","message","isValidElement","cloneElement","concat","console","error","default","all","subValue","i","sent","abrupt","reduce","stop","validateRules","namePath","rules","validateFirst","filledRules","currentRule","originValidatorFunc","val","callback","hasPromise","wrappedCallback","_len","args","Array","_key","then","promise","catch","err","summaryPromise","_ref","_callee","reject","_callee$","_context","_x6","_x7","rulePromises","finishOnFirstFailed","finishOnAllFailed","e","_x8","_finishOnAllFailed","_callee3","_callee3$","_context3","errorsList","_ref3","_x9","_finishOnFirstFailed","_callee4","count","_callee4$","_context4"],"mappings":"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","sourcesContent":["import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { setValues } from './valueUtil';\nimport { defaultValidateMessages } from './messages'; // Remove incorrect original ts define\n\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n *   `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\n\nfunction replaceMessage(template, kv) {\n  return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n    var key = str.slice(2, -1);\n    return kv[key];\n  });\n}\n/**\n * We use `async-validator` to validate rules. So have to hot replace the message with validator.\n * { required: '${name} is required' } => { required: () => 'field is required' }\n */\n\n\nfunction convertMessages(messages, name, rule, messageVariables) {\n  var kv = _objectSpread(_objectSpread({}, rule), {}, {\n    name: name,\n    enum: (rule.enum || []).join(', ')\n  });\n\n  var replaceFunc = function replaceFunc(template, additionalKV) {\n    return function () {\n      return replaceMessage(template, _objectSpread(_objectSpread({}, kv), additionalKV));\n    };\n  };\n  /* eslint-disable no-param-reassign */\n\n\n  function fillTemplate(source) {\n    var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    Object.keys(source).forEach(function (ruleName) {\n      var value = source[ruleName];\n\n      if (typeof value === 'string') {\n        target[ruleName] = replaceFunc(value, messageVariables);\n      } else if (value && _typeof(value) === 'object') {\n        target[ruleName] = {};\n        fillTemplate(value, target[ruleName]);\n      } else {\n        target[ruleName] = value;\n      }\n    });\n    return target;\n  }\n  /* eslint-enable */\n\n\n  return fillTemplate(setValues({}, defaultValidateMessages, messages));\n}\n\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n  return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\n\n\nfunction _validateRule() {\n  _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, value, rule, options, messageVariables) {\n    var cloneRule, subRuleField, validator, messages, result, subResults;\n    return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            cloneRule = _objectSpread({}, rule); // We should special handle array validate\n\n            subRuleField = null;\n\n            if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n              subRuleField = cloneRule.defaultField;\n              delete cloneRule.defaultField;\n            }\n\n            validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n            messages = convertMessages(options.validateMessages, name, cloneRule, messageVariables);\n            validator.messages(messages);\n            result = [];\n            _context2.prev = 7;\n            _context2.next = 10;\n            return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n\n          case 10:\n            _context2.next = 15;\n            break;\n\n          case 12:\n            _context2.prev = 12;\n            _context2.t0 = _context2[\"catch\"](7);\n\n            if (_context2.t0.errors) {\n              result = _context2.t0.errors.map(function (_ref2, index) {\n                var message = _ref2.message;\n                return (// Wrap ReactNode with `key`\n\n                  /*#__PURE__*/\n                  React.isValidElement(message) ? /*#__PURE__*/React.cloneElement(message, {\n                    key: \"error_\".concat(index)\n                  }) : message\n                );\n              });\n            } else {\n              console.error(_context2.t0);\n              result = [messages.default()];\n            }\n\n          case 15:\n            if (!(!result.length && subRuleField)) {\n              _context2.next = 20;\n              break;\n            }\n\n            _context2.next = 18;\n            return Promise.all(value.map(function (subValue, i) {\n              return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n            }));\n\n          case 18:\n            subResults = _context2.sent;\n            return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n              return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n            }, []));\n\n          case 20:\n            return _context2.abrupt(\"return\", result);\n\n          case 21:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, null, [[7, 12]]);\n  }));\n  return _validateRule.apply(this, arguments);\n}\n\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n  var name = namePath.join('.'); // Fill rule with context\n\n  var filledRules = rules.map(function (currentRule) {\n    var originValidatorFunc = currentRule.validator;\n\n    if (!originValidatorFunc) {\n      return currentRule;\n    }\n\n    return _objectSpread(_objectSpread({}, currentRule), {}, {\n      validator: function validator(rule, val, callback) {\n        var hasPromise = false; // Wrap callback only accept when promise not provided\n\n        var wrappedCallback = function wrappedCallback() {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n\n          // Wait a tick to make sure return type is a promise\n          Promise.resolve().then(function () {\n            warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n\n            if (!hasPromise) {\n              callback.apply(void 0, args);\n            }\n          });\n        }; // Get promise\n\n\n        var promise = originValidatorFunc(rule, val, wrappedCallback);\n        hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n        /**\n         * 1. Use promise as the first priority.\n         * 2. If promise not exist, use callback with warning instead\n         */\n\n        warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n\n        if (hasPromise) {\n          promise.then(function () {\n            callback();\n          }).catch(function (err) {\n            callback(err || ' ');\n          });\n        }\n      }\n    });\n  });\n  var summaryPromise;\n\n  if (validateFirst === true) {\n    // >>>>> Validate by serialization\n    summaryPromise = new Promise( /*#__PURE__*/function () {\n      var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {\n        var i, errors;\n        return _regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                i = 0;\n\n              case 1:\n                if (!(i < filledRules.length)) {\n                  _context.next = 11;\n                  break;\n                }\n\n                _context.next = 4;\n                return validateRule(name, value, filledRules[i], options, messageVariables);\n\n              case 4:\n                errors = _context.sent;\n\n                if (!errors.length) {\n                  _context.next = 8;\n                  break;\n                }\n\n                reject(errors);\n                return _context.abrupt(\"return\");\n\n              case 8:\n                i += 1;\n                _context.next = 1;\n                break;\n\n              case 11:\n                /* eslint-enable */\n                resolve([]);\n\n              case 12:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee);\n      }));\n\n      return function (_x6, _x7) {\n        return _ref.apply(this, arguments);\n      };\n    }());\n  } else {\n    // >>>>> Validate by parallel\n    var rulePromises = filledRules.map(function (rule) {\n      return validateRule(name, value, rule, options, messageVariables);\n    });\n    summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n      if (!errors.length) {\n        return [];\n      }\n\n      return Promise.reject(errors);\n    });\n  } // Internal catch error to avoid console error log.\n\n\n  summaryPromise.catch(function (e) {\n    return e;\n  });\n  return summaryPromise;\n}\n\nfunction finishOnAllFailed(_x8) {\n  return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction _finishOnAllFailed() {\n  _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rulePromises) {\n    return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n              var _ref3;\n\n              var errors = (_ref3 = []).concat.apply(_ref3, _toConsumableArray(errorsList));\n\n              return errors;\n            }));\n\n          case 1:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3);\n  }));\n  return _finishOnAllFailed.apply(this, arguments);\n}\n\nfunction finishOnFirstFailed(_x9) {\n  return _finishOnFirstFailed.apply(this, arguments);\n}\n\nfunction _finishOnFirstFailed() {\n  _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(rulePromises) {\n    var count;\n    return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n      while (1) {\n        switch (_context4.prev = _context4.next) {\n          case 0:\n            count = 0;\n            return _context4.abrupt(\"return\", new Promise(function (resolve) {\n              rulePromises.forEach(function (promise) {\n                promise.then(function (errors) {\n                  if (errors.length) {\n                    resolve(errors);\n                  }\n\n                  count += 1;\n\n                  if (count === rulePromises.length) {\n                    resolve([]);\n                  }\n                });\n              });\n            }));\n\n          case 2:\n          case \"end\":\n            return _context4.stop();\n        }\n      }\n    }, _callee4);\n  }));\n  return _finishOnFirstFailed.apply(this, arguments);\n}"]},"metadata":{},"sourceType":"module"}