vuex-state-storage-sync
Version:
Synchronization of vuex state and storage
3 lines (2 loc) • 2.75 kB
JavaScript
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e=e||self).syncStateStorage=r()}(this,function(){var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(e,r){return!1!==r.clone&&r.isMergeableObject(e)?c(Array.isArray(e)?[]:{},e,r):e}function n(e,r,n){return e.concat(r).map(function(e){return t(e,n)})}function o(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return e.propertyIsEnumerable(r)}):[]}(e))}function u(e,r){try{return r in e}catch(e){return!1}}function c(r,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||e,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(r)?f?a.arrayMerge(r,i,a):function(e,r,n){var i={};return n.isMergeableObject(e)&&o(e).forEach(function(r){i[r]=t(e[r],n)}),o(r).forEach(function(o){(function(e,r){return u(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))})(e,o)||(i[o]=u(e,o)&&n.isMergeableObject(r[o])?function(e,r){if(!r.customMerge)return c;var t=r.customMerge(e);return"function"==typeof t?t:c}(o,n)(e[o],r[o],n):t(r[o],n))}),i}(r,i,a):t(i,a)}c.all=function(e,r){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,t){return c(e,t,r)},{})};var i=c;return function(e){var r,t=(e=e||{}).storage||window&&window.localStorage,n=e.key||"store",o=function(e,r){try{var t=r.getItem(e);return void 0!==t?JSON.parse(t):void 0}catch(e){return}},u=function(e,r,t){return t.setItem(e,JSON.stringify(r))},c=function(e,r){return Array.isArray(r)?r.reduce(function(r,t){return function(e,r,t,n){return(r=r.split?r.split("."):r.slice(0)).slice(0,-1).reduce(function(e,r){return e[r]=e[r]||{}},e)[r.pop()]=t,e}(r,t,(n=e,void 0===(n=((o=t).split?o.split("."):o).reduce(function(e,r){return e&&e[r]},n))?void 0:n));var n,o},{}):e},a=function(){return!0},f=function(e){return function(r){return e.subscribe(r)}},s=function(){return(e.getState||o)(n,t)};return e.fetchBeforeUse&&(r=s()),function(o){e.fetchBeforeUse||(r=s()),"object"==typeof r&&null!==r&&(o.replaceState(e.overwrite?r:(e.merge||i)(o.state,r,{arrayMerge:e.arrayMerge||function(e,r){return r},clone:!1})),(e.rehydrated||function(){})(o)),(e.subscriber||f)(o)(function(r,o){(e.filter||a)(r)&&(e.setState||u)(n,(e.reducer||c)(o,e.paths),t)})}}});
//# sourceMappingURL=vuex-state-stoage-sync.umd.js.map