芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/yup/lib/util/createValidation.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.createErrorFactory = createErrorFactory; exports.default = createValidation; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _mapValues = _interopRequireDefault(require("lodash/mapValues")); var _ValidationError = _interopRequireDefault(require("../ValidationError")); var _Reference = _interopRequireDefault(require("../Reference")); var _synchronousPromise = require("synchronous-promise"); var formatError = _ValidationError.default.formatError; var thenable = function thenable(p) { return p && typeof p.then === 'function' && typeof p.catch === 'function'; }; function runTest(testFn, ctx, value, sync) { var result = testFn.call(ctx, value); if (!sync) return Promise.resolve(result); if (thenable(result)) { throw new Error("Validation test of type: \"" + ctx.type + "\" returned a Promise during a synchronous validate. " + "This test will finish after the validate call has returned"); } return _synchronousPromise.SynchronousPromise.resolve(result); } function resolveParams(oldParams, newParams, resolve) { return (0, _mapValues.default)((0, _extends2.default)({}, oldParams, newParams), resolve); } function createErrorFactory(_ref) { var value = _ref.value, label = _ref.label, resolve = _ref.resolve, originalValue = _ref.originalValue, opts = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["value", "label", "resolve", "originalValue"]); return function createError(_temp) { var _ref2 = _temp === void 0 ? {} : _temp, _ref2$path = _ref2.path, path = _ref2$path === void 0 ? opts.path : _ref2$path, _ref2$message = _ref2.message, message = _ref2$message === void 0 ? opts.message : _ref2$message, _ref2$type = _ref2.type, type = _ref2$type === void 0 ? opts.name : _ref2$type, params = _ref2.params; params = (0, _extends2.default)({ path: path, value: value, originalValue: originalValue, label: label }, resolveParams(opts.params, params, resolve)); return (0, _extends2.default)(new _ValidationError.default(formatError(message, params), value, path, type), { params: params }); }; } function createValidation(options) { var name = options.name, message = options.message, test = options.test, params = options.params; function validate(_ref3) { var value = _ref3.value, path = _ref3.path, label = _ref3.label, options = _ref3.options, originalValue = _ref3.originalValue, sync = _ref3.sync, rest = (0, _objectWithoutPropertiesLoose2.default)(_ref3, ["value", "path", "label", "options", "originalValue", "sync"]); var parent = options.parent; var resolve = function resolve(item) { return _Reference.default.isRef(item) ? item.getValue({ value: value, parent: parent, context: options.context }) : item; }; var createError = createErrorFactory({ message: message, path: path, value: value, originalValue: originalValue, params: params, label: label, resolve: resolve, name: name }); var ctx = (0, _extends2.default)({ path: path, parent: parent, type: name, createError: createError, resolve: resolve, options: options }, rest); return runTest(test, ctx, value, sync).then(function (validOrError) { if (_ValidationError.default.isError(validOrError)) throw validOrError;else if (!validOrError) throw createError(); }); } validate.OPTIONS = options; return validate; }