UNPKG

typescript-libraries

Version:
72 lines (71 loc) 2.75 kB
"use strict"; 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;