UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

68 lines (67 loc) 3.06 kB
"use strict"; 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;