database-builder
Version:
Library to assist in creating and maintaining SQL commands.
68 lines (67 loc) • 3.06 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModelUtils = void 0;
var lodash = require("lodash");
var utils_1 = require("./utils");
var ModelUtils = /** @class */ (function () {
function ModelUtils() {
}
ModelUtils.set = function (model, property, keyValue) {
// verifica se é nulo/undefined
if (utils_1.Utils.isNull(keyValue)) {
// se for nulo seta a valor na raiz da propriedade
return lodash.set(model, property.split(".")[0], keyValue);
}
return lodash.set(model, property, keyValue);
};
ModelUtils.update = function (model, property, updateFn) {
return lodash.update(model, property, updateFn);
};
ModelUtils.get = function (model, property) {
return lodash.get(model, property);
};
ModelUtils.mergeOverrideEmpty = function (obj, sources) {
var result = this.assignWith(obj, sources, this.mergeValues);
return result;
};
ModelUtils.mergeValues = function (oldValue, newValue) {
var newIsUndefined = utils_1.Utils.isNull(newValue);
var oldIsUndefined = utils_1.Utils.isNull(oldValue);
var newIsNumber = utils_1.Utils.isValueNumber(newValue);
var oldIsNumber = utils_1.Utils.isValueNumber(oldValue);
var newIsEmpty = newIsNumber && !newIsUndefined ? false : utils_1.Utils.isEmpty(newValue);
var oldIsEmpty = oldIsNumber && !oldIsUndefined ? false : utils_1.Utils.isEmpty(oldValue);
var newIsValueDefault = utils_1.Utils.isValueDefault(newValue);
var oldIsValueDefault = utils_1.Utils.isValueDefault(oldValue);
var newValueScoreBad = (newIsUndefined && 3) + (newIsEmpty && 2) + (newIsValueDefault && 1);
var oldValueScoreBad = (oldIsUndefined && 3) + (oldIsEmpty && 2) + (oldIsValueDefault && 1);
var newValueIsGood = !newIsUndefined && !newIsEmpty && !newIsValueDefault;
var useNewValue = (oldIsValueDefault && (!newIsUndefined || !newIsEmpty)) ||
(newValueScoreBad <= oldValueScoreBad);
var result = useNewValue
? newValue
: oldValue;
return result;
};
ModelUtils.assignWith = function (obj) {
var sources = [];
for (var _i = 1; _i < arguments.length; _i++) {
sources[_i - 1] = arguments[_i];
}
return lodash.assignWith.apply(lodash, __spreadArray([obj], sources, false));
};
ModelUtils.cloneDeep = function (obj) {
return lodash.cloneDeep(obj);
};
return ModelUtils;
}());
exports.ModelUtils = ModelUtils;