@uiw-admin/components
Version:
77 lines (76 loc) • 2.2 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validator = exports.getRules = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
/**
* 1. 必填 空字符/空数组/null/undefined/{}
*
* **/
var validatorEmpty = function validatorEmpty(value) {
if (typeof value === 'number') {
return true;
}
if (typeof value === 'string') {
return !!value;
}
if (Array.isArray(value)) {
return !!value.length;
}
if (typeof value === 'function') {
return true;
}
if (typeof value === 'boolean') {
return true;
}
if (Object.prototype.toString.call(value) === '[object Object]') {
return !!Object.keys(value).length;
}
return !!value;
};
var validator = function validator(values, rules) {
var error = {};
Object.entries(rules).forEach(function (_ref) {
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
key = _ref2[0],
ruleItems = _ref2[1];
if (ruleItems) {
var value = values[key];
var fileRulesError = ruleItems.map(function (rule) {
if (typeof rule === 'function') {
return rule(value);
}
if (rule && (0, _typeof2["default"])(rule) === 'object') {
if (rule.required && !validatorEmpty(value)) {
return rule.message;
}
if (rule.pattern instanceof RegExp) {
return rule.pattern.test(value);
}
}
return false;
}).filter(Boolean);
if (fileRulesError.length) {
error[key] = fileRulesError;
}
}
});
return error;
};
exports.validator = validator;
var getRules = function getRules(fields) {
var validatorrules = {};
Object.entries(fields || {}).map(function (_ref3) {
var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
key = _ref4[0],
item = _ref4[1];
if (item.rules) {
validatorrules[key] = item.rules;
}
});
return validatorrules;
};
exports.getRules = getRules;