@ant-basement/core
Version:
Ant Basement JavaScript SDK Core
49 lines • 4.49 kB
JavaScript
import Parameter from 'parameter';
import { rules } from './rules';
import { BasementClientError } from '../error';
import { ErrorName, ErrorType, ErrorCode } from '../constant';
var Validator = (function () {
function Validator(options) {
this.p = new Parameter(options);
for (var _i = 0, _a = Object.keys(rules); _i < _a.length; _i++) {
var ruleName = _a[_i];
var name_1 = ruleName.match(/ruleOf([a-zA-Z]+)/)[1];
this.p.addRule(name_1[0].toLowerCase() + name_1.slice(1), rules[ruleName]);
}
}
Validator.prototype.validate = function (rules, obj) {
if (typeof obj !== 'object' && typeof rules === 'string') {
obj = { field: obj };
rules = { field: rules };
}
var message = this.p.validate(rules, obj);
if (!message) {
return null;
}
var result = message.map(function (mistake) {
if (mistake.field) {
var target = JSON.parse(JSON.stringify(obj));
var fields = mistake.field.match(/[^\.\[\]]+/g);
while (fields.length) {
var field = fields.shift();
if (!target.hasOwnProperty(field)) {
break;
}
target = target[field];
}
mistake.value = target;
}
return mistake;
});
function getMessage(result) {
if (Array.isArray(result)) {
return result.map(getMessage).join('; ');
}
return result.field + " " + result.message;
}
throw new BasementClientError(ErrorName.VALIDATION_ERROR, ErrorCode.VALIDATION_FAILED, ErrorType.COMMON_ERROR, getMessage(result));
};
return Validator;
}());
export { Validator };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxpdHkvdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQ7SUFFRSxtQkFBWSxPQUE0QjtRQUN0QyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhDLEtBQXVCLFVBQWtCLEVBQWxCLEtBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBbEIsY0FBa0IsRUFBbEIsSUFBa0IsRUFBRTtZQUF0QyxJQUFNLFFBQVEsU0FBQTtZQUVqQixJQUFNLE1BQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE1BQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBUU0sNEJBQVEsR0FBZixVQUFnQixLQUFVLEVBQUUsR0FBUTtRQUVsQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDeEQsR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUMxQjtRQUVELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7U0FDYjtRQUdELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxPQUFPO1lBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDakIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVsRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3BCLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ2pDLE1BQU07cUJBQ1A7b0JBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDeEI7Z0JBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7YUFDeEI7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsVUFBVSxDQUFDLE1BQU07WUFDeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN6QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFDO1lBRUQsT0FBVSxNQUFNLENBQUMsS0FBSyxTQUFJLE1BQU0sQ0FBQyxPQUFTLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsU0FBUyxDQUFDLGdCQUFnQixFQUMxQixTQUFTLENBQUMsaUJBQWlCLEVBQzNCLFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FDbkIsQ0FBQztJQUNKLENBQUM7SUFDSCxnQkFBQztBQUFELENBQUMsQUFsRUQsSUFrRUMifQ==