typescript-libraries
Version:
To install this library, run:
72 lines (71 loc) • 2.75 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TSValidator = void 0;
var TSObject_1 = require("./TSObject");
var TSValidator = /** @class */ (function () {
function TSValidator(options) {
if (options === void 0) { options = {}; }
this.options = { amount: 0 };
if (options) {
this.options = __assign(__assign({}, this.options), options);
}
}
TSValidator.compareProperties = function (source, target) {
var validations = [];
TSObject_1.TSObject.forOwn(source, function (v, k) {
var _a;
if (!(k in target)) {
validations.push((_a = { message: TSValidator.message(k) + 'IsMissed' }, _a[k] = v, _a));
}
else if (target[k] !== v) {
validations.push({ message: TSValidator.message(k) + 'NotMet', property: k, source: v, target: target[k] });
}
});
return validations;
};
TSValidator.prototype.compare = function (prefix) {
if (prefix === void 0) { prefix = ''; }
return [
this.compareOption('amount', function (o) { return o > 0; }),
this.compareOption('balance', function (o, c) { return c <= o; }),
this.compareOption('min', function (o, c) { return c >= o; }),
this.compareOption('max', function (o, c) { return c <= o; }),
].filter(function (v) {
if (v) {
v.message = prefix + v.message;
}
return v;
});
};
TSValidator.prototype.compareOption = function (option, compare) {
if (typeof this.options[option] !== 'undefined' && !compare(this.options[option], this.options.amount)) {
return __assign({ message: "".concat(TSValidator.message(option), "VsAmountNotMet") }, this.options);
}
return false;
};
TSValidator.condition = function (value, criteria) {
if (value === undefined || value === null) {
return true;
}
if (criteria === undefined || criteria === null) {
return !!value;
}
return value == criteria;
};
TSValidator.message = function (option) {
return option.charAt(0).toUpperCase() + option.slice(1);
};
return TSValidator;
}());
exports.TSValidator = TSValidator;