UNPKG

object-hierarchy-access

Version:

Get/Set value from/to JS object hierarchy properties

2 lines (1 loc) 3.92 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e=e||self).ObjectHierarchyAccess={})}(this,function(e){"use strict";function d(e,r){var n=r.name,t=r.getName;return void 0!==n?n:t&&t.call(e,e)||"undefined"}function t(e,r,s){var h=e;return r.forEach(function(e){var r=function p(e){return e&&"object"==typeof e?e:"function"==typeof e?{getName:e,value:{}}:{name:e,value:{}}}(e),n=r.value,t=r.type,a=r.create,o=r.override,u=r.created,c=r.skipped,f=r.got,i=d(h,r);if(s||o||!h[i]||"object"!=typeof h[i]){var l=n||(t?new t:a?a.call(h,h,i):{});h[i]=l,u&&u.call(h,h,i,l)}else c&&c.call(h,h,i,h[i]);var v=h;h=h[i],f&&f.call(v,v,i,h)}),h}function i(e,r){return t(e,r)}function a(e,r){var n=t(e,r.slice(0,-1));return{current:n,last:t(n,r.slice(-1),!0)}}function l(e){var r=e[e.length-1],n=Array.prototype.concat.apply([],e.slice(0,-1));return{hierarchies:n.slice(0,-1),prop:n[n.length-1],value:r}}function o(e){return Array.prototype.concat.apply([],e)}function v(e){return"object"==typeof e?e:"function"==typeof e?{getName:e}:{name:e}}function p(e){var r=e[e.length-1];return{hierarchies:Array.prototype.concat.apply([],e.slice(0,-1)),callback:r}}e.set=function f(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value,c=e||{};return i(c,a)[o]=u,c},e.assign=function s(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value,c=i(e,a);return c[o]=u,c},e.put=function c(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value;return i(e,a)[o]=u},e.setIfUndef=function h(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value,c=e||{},f=i(c,a);return f[o]===undefined&&(f[o]=u),c},e.assignIfUndef=function g(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value,c=i(e,a);return c[o]===undefined&&(c[o]=u),c},e.putIfUndef=function y(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=l(r),a=t.hierarchies,o=t.prop,u=t.value,c=i(e,a);return c[o]===undefined&&(c[o]=u),c[o]},e.setProp=function u(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=e||{};return a(t,o(r)),t},e.assignProp=function b(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];return a(e,o(r)).current},e.putProp=function m(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];return a(e,o(r)).last},e.setPropIfUndef=function P(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=e||{};return i(t,o(r)),t},e.assignPropIfUndef=function j(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=o(r),a=i(e,t.slice(0,-1));return i(a,t.slice(-1)),a},e.putPropIfUndef=function I(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];return i(e,o(r))},e.get=function U(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=Array.prototype.concat.apply([],r),o=e;return o!==undefined&&null!==o&&t.every(function(e){var r=v(e),n=r.got,t=d(o,r),a=o;return o=o[t],n&&n.call(a,a,t,o),o}),o},e.traverse=function k(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=p(r),a=t.hierarchies,o=t.callback,u=e;u!==undefined&&null!==u&&a.every(function(e){var r=v(e),n=r.got,t=d(u,r),a=u;return u=u[t],n&&n.call(a,a,t,u),!1!==o.call(a,a,t,u)})},e.traverseReverse=function A(e){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];var t=p(r),a=t.hierarchies,o=t.callback,u=e;if(u!==undefined&&null!==u){var c=[];a.every(function(e){var r=v(e),n=r.got,t=d(u,r),a=u;return u=u[t],n&&n.call(a,a,t,u),c.push({parent:a,name:t,current:u}),u});for(var f=c.length-1;0<=f;f--){var i=c[f];if(!1===o.call(i.parent,i.parent,i.name,i.current))break}}},Object.defineProperty(e,"__esModule",{value:!0})});