@analytics/storage-utils
Version:
Storage utility with fallbacks
3 lines (2 loc) • 3.25 kB
JavaScript
var utilStorage=function(e,t,r,o,n,i){function a(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(i.isObject(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}var u=o.hasLocalStorage(),s=n.hasSessionStorage(),O=r.hasCookies();function S(e,o){if(e){var n=g(o),u=!m(n),s=f(n)?a(localStorage.getItem(e)):void 0;if(u&&!i.isUndefined(s))return s;var O=L(n)?a(r.getCookie(e)):void 0;if(u&&O)return O;var S=A(n)?a(sessionStorage.getItem(e)):void 0;if(u&&S)return S;var l=t.get(e);return u?l:{localStorage:s,sessionStorage:S,cookie:O,global:l}}}function l(e,u,s){if(e&&!i.isUndefined(u)){var O={},S=g(s),l=JSON.stringify(u),c=!m(S);return f(S)&&(O[o.LOCAL_STORAGE]=d(o.LOCAL_STORAGE,u,a(localStorage.getItem(e))),localStorage.setItem(e,l),c)?O[o.LOCAL_STORAGE]:L(S)&&(O[r.COOKIE]=d(r.COOKIE,u,a(r.getCookie(e))),r.setCookie(e,l),c)?O[r.COOKIE]:A(S)&&(O[n.SESSION_STORAGE]=d(n.SESSION_STORAGE,u,a(sessionStorage.getItem(e))),sessionStorage.setItem(e,l),c)?O[n.SESSION_STORAGE]:(O[t.GLOBAL]=d(t.GLOBAL,u,t.get(e)),t.set(e,u),c?O[t.GLOBAL]:O)}}function c(e,a){if(e){var u=g(a),s=S(e,i.ALL),O={};return!i.isUndefined(s.localStorage)&&f(u)&&(localStorage.removeItem(e),O[o.LOCAL_STORAGE]=s.localStorage),!i.isUndefined(s.cookie)&&L(u)&&(r.removeCookie(e),O[r.COOKIE]=s.cookie),!i.isUndefined(s.sessionStorage)&&A(u)&&(sessionStorage.removeItem(e),O[n.SESSION_STORAGE]=s.sessionStorage),!i.isUndefined(s.global)&&b(u,t.GLOBAL)&&(t.remove(e),O[t.GLOBAL]=s.global),O}}function g(e){return e?i.isString(e)?e:e.storage:i.ANY}function f(e){return u&&b(e,o.LOCAL_STORAGE)}function L(e){return O&&b(e,r.COOKIE)}function A(e){return s&&b(e,n.SESSION_STORAGE)}function m(e){return e===i.ALL||"all"===e}function b(e,t){return e===i.ANY||e===t||m(e)}function d(e,t,r){return{location:e,current:t,previous:r}}var C={setItem:l,getItem:S,removeItem:c};return Object.defineProperty(e,"GLOBAL",{enumerable:!0,get:function(){return t.GLOBAL}}),Object.defineProperty(e,"globalContext",{enumerable:!0,get:function(){return t.globalContext}}),Object.defineProperty(e,"COOKIE",{enumerable:!0,get:function(){return r.COOKIE}}),Object.defineProperty(e,"getCookie",{enumerable:!0,get:function(){return r.getCookie}}),Object.defineProperty(e,"hasCookies",{enumerable:!0,get:function(){return r.hasCookies}}),Object.defineProperty(e,"removeCookie",{enumerable:!0,get:function(){return r.removeCookie}}),Object.defineProperty(e,"setCookie",{enumerable:!0,get:function(){return r.setCookie}}),Object.defineProperty(e,"LOCAL_STORAGE",{enumerable:!0,get:function(){return o.LOCAL_STORAGE}}),Object.defineProperty(e,"hasLocalStorage",{enumerable:!0,get:function(){return o.hasLocalStorage}}),Object.defineProperty(e,"SESSION_STORAGE",{enumerable:!0,get:function(){return n.SESSION_STORAGE}}),Object.defineProperty(e,"hasSessionStorage",{enumerable:!0,get:function(){return n.hasSessionStorage}}),Object.defineProperty(e,"ALL",{enumerable:!0,get:function(){return i.ALL}}),Object.defineProperty(e,"ANY",{enumerable:!0,get:function(){return i.ANY}}),e.default=C,e.getItem=S,e.removeItem=c,e.setItem=l,e}({},globalStorageUtils,cookieUtils,localstorageUtils,sessionStorageUtils,typeUtils);
//# sourceMappingURL=storage-utils.cjs.map