lin-cms-test
Version:
The core library of Lin CMS, this package is just for test!
76 lines (75 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const class_validator_1 = require("class-validator");
const lodash_1 = require("lodash");
const validator_1 = tslib_1.__importDefault(require("validator"));
class ExtendedValidator extends class_validator_1.Validator {
/**
* 检查一个object是否具有某个属性
* @param obj
* @param path
* @example
* hasProperty({a:"l"},"a")
*/
hasProperty(obj, path) {
return lodash_1.has(obj, path);
}
/**
* 检查一个object的某个属性是否为空
* @param obj
* @param path
* @example
* objPropertyIsNotEmpty({ a : { b: "c" }, "a.b" })
*/
objPropertyIsNotEmpty(obj, path) {
if (!this.hasProperty(obj, path)) {
return false;
}
return this.isNotEmpty(lodash_1.get(obj, path));
}
/**
* 检查一个object的多个属性是否为空
* @param obj
* @param paths
* @example
* objPropertiesIsNotEmpty({a: {b:"c", d: "e"}}, ["a.b","a.d"])
*/
objPropertiesIsNotEmpty(obj, paths) {
for (const path of paths) {
if (!this.hasProperty(obj, path)) {
return false;
}
if (!this.isNotEmpty(lodash_1.get(obj, path))) {
return false;
}
}
return true;
}
toInt(input, radix) {
return validator_1.default.toInt(input, radix);
}
toFloat(input) {
return validator_1.default.toFloat(input);
}
toBoolean(input) {
return validator_1.default.toBoolean(input);
}
toDate(input) {
return validator_1.default.toDate(input);
}
isFloat(str, options) {
return validator_1.default.isFloat(str, options);
}
isFloat2(input, options) {
return validator_1.default.isFloat(input + "", options);
}
isInt2(str, options) {
return validator_1.default.isInt(str, options);
}
isInt3(input, options) {
return validator_1.default.isInt(input + "", options);
}
}
exports.ExtendedValidator = ExtendedValidator;
exports.extendedValidator = new ExtendedValidator();