danielkalen/smart-extend

View on GitHub
dist/smart-extend.min.js

Summary

Maintainability
A
0 mins
Test Coverage
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self)["smart-extend"]=e()}(this,function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e,n,o,r;n=function(t){return Array.isArray(t)},o=function(t){return t&&"[object Object]"===Object.prototype.toString.call(t)||n(t)},r=function(t,e,n){return t.deep?!t.notDeep||!t.notDeep[e]:t.deepOnly?t.deepOnly[e]||n&&r(t,n):void 0};var i,s,u,f,l=e=function(i,s,u,f){var l,a,c,p,y,h,b;for((!s||"object"!==t(s)&&"function"!=typeof s)&&(s={}),l=0,c=u.length;l<c;l++)if(null!=(p=u[l]))for(a in p)if(y=p[a],b=s[a],!(y===s||void 0===y||null===y&&!i.allowNull&&!i.nullDeletes||i.keys&&!i.keys[a]||i.notKeys&&i.notKeys[a]||i.own&&!p.hasOwnProperty(a)||i.globalFilter&&!i.globalFilter(y,a,p)||i.filters&&i.filters[a]&&!i.filters[a](y,a,p)))if(null===y&&i.nullDeletes)delete s[a];else switch(i.globalTransform&&(y=i.globalTransform(y,a,p)),i.transforms&&i.transforms[a]&&(y=i.transforms[a](y,a,p)),!1){case!(i.concat&&n(y)&&n(b)):s[a]=b.concat(y);break;case!(r(i,a,f)&&o(y)):h=o(b)?b:n(y)?[]:{},s[a]=e(i,h,[y],a);break;default:s[a]=y}return s};return u=function(e){var n,o,r;if(e){if(r={},"object"!==t(e))r[e]=!0;else for(Array.isArray(e)||(e=Object.keys(e)),n=0,o=e.length;n<o;n++)r[e[n]]=!0;return r}},s=function(t){var e;return e=function(t){for(var n,o=arguments.length,r=-1,i=new Array(o);++r<o;)i[r]=arguments[r];return e.options.target?n=e.options.target:(n=t,i.shift()),l(e.options,n,i)},t&&(e.isBase=!0),e.options={},Object.defineProperties(e,i),e},i={deep:{get:function(){var t;return(t=this.isBase?s():this).options.deep=!0,t}},own:{get:function(){var t;return(t=this.isBase?s():this).options.own=!0,t}},allowNull:{get:function(){var t;return(t=this.isBase?s():this).options.allowNull=!0,t}},nullDeletes:{get:function(){var t;return(t=this.isBase?s():this).options.nullDeletes=!0,t}},concat:{get:function(){var t;return(t=this.isBase?s():this).options.concat=!0,t}},clone:{get:function(){var t;return(t=this.isBase?s():this).options.target={},t}},notDeep:{get:function(){var t;return t=this.isBase?s():this,function(e){return t.options.notDeep=u(e),t}}},deepOnly:{get:function(){var t;return t=this.isBase?s():this,function(e){return t.options.deepOnly=u(e),t}}},keys:{get:function(){var t;return t=this.isBase?s():this,function(e){return t.options.keys=u(e),t}}},notKeys:{get:function(){var t;return t=this.isBase?s():this,function(e){return t.options.notKeys=u(e),t}}},transform:{get:function(){var e;return e=this.isBase?s():this,function(n){return"function"==typeof n?e.options.globalTransform=n:n&&"object"===t(n)&&(e.options.transforms=n),e}}},filter:{get:function(){var e;return e=this.isBase?s():this,function(n){return"function"==typeof n?e.options.globalFilter=n:n&&"object"===t(n)&&(e.options.filters=n),e}}}},(f=s(!0)).version="1.7.4",f});