@charliehess/redux-persist
Version:
persist and rehydrate redux stores
3 lines (2 loc) • 10 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.ReduxPersist=e.ReduxPersist||{})}(this,function(e){"use strict";function t(e){var t=N.call(e,q),n=e[q];try{e[q]=void 0;var r=!0}catch(e){}var o=J.call(e);return r&&(t?e[q]=n:delete e[q]),o}function n(e){return L.call(e)}function r(e){return null==e?void 0===e?D:M:G&&G in Object(e)?t(e):n(e)}function o(e){return null!=e&&"object"==typeof e}function i(e){if(!o(e)||r(e)!=U)return!1;var t=H(e);if(null===t)return!0;var n=V.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Q.call(n)==W}function u(e){return!!e&&("object"===(void 0===e?"undefined":X(e))&&("function"!=typeof e.asMutable&&!!i(e)))}function c(){function e(e){var r=!1,o=[];return function(i,u){if(u.type!==E)return t.log&&!r&&o.push(u),e(i,u);t.log&&!r&&s(o),r=!0;var c=u.payload,f=e(i,u);return n(i,c,f,t.log)}}var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.stateReconciler||f;return function(t){return function(n,r,o){var i=t(e(n),r,o);return Z({},i,{replaceReducer:function(t){return i.replaceReducer(e(t))}})}}}function s(e){var t=e.slice(1);t.length>0&&console.log("\n redux-persist/autoRehydrate: %d actions were fired before rehydration completed. This can be a symptom of a race\n condition where the rehydrate action may overwrite the previously affected state. Consider running these actions\n after rehydration:\n ",t.length,t)}function f(e,t,n,r){var o=Z({},n);return Object.keys(t).forEach(function(i){if(e.hasOwnProperty(i)){if("object"===X(e[i])&&!t[i])return void(r&&console.log("redux-persist/autoRehydrate: sub state for key `%s` is falsy but initial state is an object, skipping autoRehydrate.",i));if(e[i]!==n[i])return r&&console.log("redux-persist/autoRehydrate: sub state for key `%s` modified, skipping autoRehydrate.",i),void(o[i]=n[i]);o[i]=u(t[i])&&u(e[i])?Z({},e[i],t[i]):t[i],r&&console.log("redux-persist/autoRehydrate: key `%s`, rehydrated to ",i,o[i])}}),o}function a(e){if("object"!==("undefined"==typeof window?"undefined":X(window))||!(e in window))return!1;try{var t=window[e],n="redux-persist "+e+" test";t.setItem(n,"test"),t.getItem(n),t.removeItem(n)}catch(e){return!1}return!0}function l(){return a("localStorage")}function d(){return a("sessionStorage")}function y(e){return"local"===e?l()?window.localStorage:{getItem:ee,setItem:ee,removeItem:ee,getAllKeys:ee}:"session"===e?d()?window.sessionStorage:{getItem:ee,setItem:ee,removeItem:ee,getAllKeys:ee}:void 0}function p(e,t){var n=e.storage,r=void 0!==e.keyPrefix?e.keyPrefix:A;if(Array.isArray(e))throw Error("redux-persist: purgeStoredState requires config as a first argument (found array). An array of keys is the optional second argument.");if(!n)throw Error("redux-persist: config.storage required in purgeStoredState");return void 0===t?new Promise(function(t,o){n.getAllKeys(function(n,i){n?o(n):t(p(e,i.filter(function(e){return 0===e.indexOf(r)}).map(function(e){return e.slice(r.length)})))})}):Promise.all(t.map(function(e){return n.removeItem(""+r+e,g(e))}))}function g(e){return function(e){}}function h(e,t){function n(e,t,n){if(y)a.reduce(function(n,r){return n.then(function(){return Promise.resolve(r.in(e,t)).then(function(t){return e=t})}).catch(console.error)},Promise.resolve()).then(function(e){n(e)});else{var r=a.reduce(function(e,n){return n.in(e,t)},e);n(r)}}function r(e){return(!f||-1!==f.indexOf(e))&&-1===s.indexOf(e)}function o(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};if(n.serial){if(y)throw Error("Async transforms not implemented with serial: true");h(t,function(e,t){try{var n=c(e),o=a.reduceRight(function(e,n){return n.out(e,t)},n);r=P(r,t,o)}catch(e){}})}else r=t;return e.dispatch(x(r)),r}function i(e){return""+d+e}var u=!1===t.serialize?function(e){return e}:v,c=!1===t.serialize?function(e){return e}:b,s=t.blacklist||[],f=t.whitelist||!1,a=t.transforms||[],l=t.debounce||!1,d=void 0!==t.keyPrefix?t.keyPrefix:A,y=t.asyncTransforms||!1,g=t._stateInit||{},h=t._stateIterator||O,j=t._stateGetter||S,P=t._stateSetter||w,k=t.storage||te("local");k.keys&&!k.getAllKeys&&(k.getAllKeys=k.keys);var I=g,R=!1,E=[],K=null,T=!1;return e.subscribe(function(){if(!R){var t=e.getState();h(t,function(e,n){r(n)&&j(I,n)!==j(t,n)&&-1===E.indexOf(n)&&E.push(n)}),null===K&&(K=setInterval(function(){function t(e){void 0!==e&&(k.setItem(o,u(e),m(r)),T=!1)}if(!T){if(0===E.length)return clearInterval(K),void(K=null);var r=E.shift(),o=i(r),c=j(e.getState(),r);T=!0,n(c,r,t)}},l)),I=t}}),{rehydrate:o,pause:function(){R=!0},resume:function(){R=!1},purge:function(e){return p({storage:k,keyPrefix:d},e)}}}function m(e){return function(e){}}function v(e){return ne(e,null,null,function(e,t){throw Error('\n redux-persist: cannot process cyclical state.\n Consider changing your state structure to have no cycles.\n Alternatively blacklist the corresponding reducer key.\n Cycle encounted at key "'+e+'" with value "'+t+'".\n ')})}function b(e){return JSON.parse(e)}function x(e){return{type:E,payload:e}}function O(e,t){return Object.keys(e).forEach(function(n){return t(e[n],n)})}function S(e,t){return e[t]}function w(e,t,n){return e[t]=n,e}function j(e,t){function n(e){return!(!o||-1!==o.indexOf(e))||!(!i||-1===i.indexOf(e))}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=r.whitelist||null,i=r.blacklist||null;return{in:function(t,r){return!n(r)&&e?e(t,r):t},out:function(e,r){return!n(r)&&t?t(e,r):e}}}function P(e,t){function n(e,t,n,r){function o(n){e[t]=null}var i=void 0;try{i=c(n)}catch(e){return o(e),void r()}if(d)a.reduceRight(function(e,n){return e.then(function(){return Promise.resolve(n.out(i,t)).then(function(e){return i=e})}).catch(o)},Promise.resolve()).then(function(n){e[t]=n,r()});else try{e[t]=a.reduceRight(function(e,n){return n.out(e,t)},i)}catch(e){o(e)}finally{r()}}function r(e,n){t(e,n)}function o(e){return(!f||-1!==f.indexOf(e))&&-1===s.indexOf(e)}function i(e){return""+l+e}var u=e.storage||te("local"),c=!1===e.serialize?function(e){return e}:k,s=e.blacklist||[],f=e.whitelist||!1,a=e.transforms||[],l=void 0!==e.keyPrefix?e.keyPrefix:A,d=e.asyncTransforms||!1;u.keys&&!u.getAllKeys&&(u=Z({},u,{getAllKeys:u.keys}));var y={},p=0;if(u.getAllKeys(function(e,t){e&&r(e);var c=t.filter(function(e){return 0===e.indexOf(l)}).map(function(e){return e.slice(l.length)}),s=c.filter(o),f=s.length;0===f&&r(null,y),s.forEach(function(e){u.getItem(i(e),function(t,o){function i(){(p+=1)===f&&r(null,y)}n(y,e,o,i)})})}),"function"!=typeof t&&Promise)return new Promise(function(e,n){t=function(t,r){t?n(t):e(r)}})}function k(e){return JSON.parse(e)}function I(e){function t(e,t){u.resume(),r&&r(e,t)}var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2],o=!n.skipRestore,i=null,u=h(e,n);return u.pause(),$(o?function(){P(n,function(n,r){if(n)return void t(n);i&&("*"===i?r={}:i.forEach(function(e){return delete r[e]})),e.dispatch(R(r,n)),t(n,r)})}:t),Z({},u,{purge:function(e){return i=e||"*",u.purge(e)}})}function R(e){return{type:E,payload:e,error:arguments.length>1&&void 0!==arguments[1]?arguments[1]:null}}var A="reduxPersist:",E="persist/REHYDRATE",K="object"==typeof global&&global&&global.Object===Object&&global,T="object"==typeof self&&self&&self.Object===Object&&self,_=K||T||Function("return this")(),C=_.Symbol,z=Object.prototype,N=z.hasOwnProperty,J=z.toString,q=C?C.toStringTag:void 0,F=Object.prototype,L=F.toString,M="[object Null]",D="[object Undefined]",G=C?C.toStringTag:void 0,H=function(e,t){return function(n){return e(t(n))}}(Object.getPrototypeOf,Object),U="[object Object]",Y=Function.prototype,B=Object.prototype,Q=Y.toString,V=B.hasOwnProperty,W=Q.call(Object),X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$="undefined"!=typeof global&&void 0!==global.setImmediate?global.setImmediate:setTimeout,ee=function(){return null},te=function(e,t){var n=y(e);return{getAllKeys:function(e){return new Promise(function(t,r){try{for(var o=[],i=0;n.length>i;i++)o.push(n.key(i));$(function(){e&&e(null,o),t(o)})}catch(t){e&&e(t),r(t)}})},getItem:function(e,t){return new Promise(function(r,o){try{var i=n.getItem(e);$(function(){t&&t(null,i),r(i)})}catch(e){t&&t(e),o(e)}})},setItem:function(e,t,r){return new Promise(function(o,i){try{n.setItem(e,t),$(function(){r&&r(null),o()})}catch(e){r&&r(e),i(e)}})},removeItem:function(e,t){return new Promise(function(r,o){try{n.removeItem(e),$(function(){t&&t(null),r()})}catch(e){t&&t(e),o(e)}})}}},ne=function(e,t){return t={exports:{}},e(t,t.exports),t.exports}(function(e,t){function n(e,t,n,o){return JSON.stringify(e,r(t,o),n)}function r(e,t){var n=[],r=[];return null==t&&(t=function(e,t){return n[0]===t?"[Circular ~]":"[Circular ~."+r.slice(0,n.indexOf(t)).join(".")+"]"}),function(o,i){if(n.length>0){var u=n.indexOf(this);~u?n.splice(u+1):n.push(this),~u?r.splice(u,1/0,o):r.push(o),~n.indexOf(i)&&(i=t.call(this,o,i))}else n.push(i);return null==e?i:e.call(this,o,i)}}t=e.exports=n,t.getSerialize=r}),re=function(e,t,n){console.error('redux-persist: this method of importing storages has been removed. instead use `import { asyncLocalStorage } from "redux-persist/storages"`'),"function"==typeof e&&e(),"function"==typeof t&&t(),"function"==typeof n&&n()},oe={getAllKeys:re,getItem:re,setItem:re,removeItem:re},ie={asyncLocalStorage:oe,asyncSessionStorage:oe};e.autoRehydrate=c,e.createPersistor=h,e.createTransform=j,e.getStoredState=P,e.persistStore=I,e.purgeStoredState=p,e.storages=ie,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=redux-persist.min.js.map