UNPKG

lin-cms-test

Version:

The core library of Lin CMS, this package is just for test!

76 lines (75 loc) 2.23 kB
"use strict"; 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();