@uiw-admin/components
Version:
62 lines • 1.51 kB
JavaScript
/**
* 1. 必填 空字符/空数组/null/undefined/{}
*
* **/
var 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;
};
export var validator = (values, rules) => {
var error = {};
Object.entries(rules).forEach(_ref => {
var [key, ruleItems] = _ref;
if (ruleItems) {
var value = values[key];
var fileRulesError = ruleItems.map(rule => {
if (typeof rule === 'function') {
return rule(value);
}
if (rule && typeof 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;
};
export var getRules = fields => {
var validatorrules = {};
Object.entries(fields || {}).map(_ref2 => {
var [key, item] = _ref2;
if (item.rules) {
validatorrules[key] = item.rules;
}
});
return validatorrules;
};