UNPKG

turbocommons-ts

Version:

General purpose library that implements frequently used and generic software development tasks

1 lines 2.03 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ObjectUtils=void 0;var ArrayUtils_1=require("./ArrayUtils"),StringUtils_1=require("./StringUtils"),ValidationManager_1=require("../managers/ValidationManager"),ObjectUtils=function(){function r(){}return r.isObject=function(r){return!(ArrayUtils_1.ArrayUtils.isArray(r)||null===r||r instanceof RegExp||"object"!=typeof r)},r.getKeys=function(t){if(!r.isObject(t))throw new Error("parameter must be an object");return Object.keys(t)},r.isEqualTo=function(t,e){var i=new ValidationManager_1.ValidationManager;if(!r.isObject(t)||!r.isObject(e))throw new Error("parameters must be objects");var n=r.getKeys(t).sort(),s=r.getKeys(e).sort();if(!ArrayUtils_1.ArrayUtils.isEqualTo(n,s))return!1;for(var a=0;a<n.length;a++)if(!i.isEqualTo(t[n[a]],e[s[a]]))return!1;return!0},r.isStringFound=function(t,e,i){if(void 0===i&&(i=!0),!r.isObject(t))throw new Error("parameter must be an object");if(!StringUtils_1.StringUtils.isString(e))throw new Error("str is not a string");for(var n=0,s=r.getKeys(t);n<s.length;n++){var a=s[n];if(StringUtils_1.StringUtils.isString(t[a])&&(i&&t[a].indexOf(e)>=0||!i&&t[a].toLowerCase().indexOf(e.toLowerCase())>=0))return!0;if(ArrayUtils_1.ArrayUtils.isArray(t[a])&&ArrayUtils_1.ArrayUtils.isStringFound(t[a],e,i))return!0;if(r.isObject(t[a])&&r.isStringFound(t[a],e,i))return!0}return!1},r.merge=function(t,e){if(!r.isObject(t)||!r.isObject(e))throw new Error("destination and source must objects");for(var i=0,n=r.getKeys(e);i<n.length;i++){var s=n[i];t.hasOwnProperty(s)&&r.isObject(e[s])&&r.isObject(t[s])?t[s]=r.merge(t[s],e[s]):t[s]=r.clone(e[s])}return t},r.clone=function(t){return r.apply(t,function(e){return r.isObject(e)?new t.constructor:e})},r.apply=function(t,e){if(ArrayUtils_1.ArrayUtils.isArray(t)){for(var i=[],n=0,s=t;n<s.length;n++){var a=s[n];i.push(r.apply(a,e))}return i}if(r.isObject(t)){i=new t.constructor;for(var o in t)i[o]=r.apply(t[o],e);return i}return e(t)},r}();exports.ObjectUtils=ObjectUtils;