UNPKG

vuex-localstorage

Version:

:dvd: Persist Vuex state with expires by localStorage or some else storage.

6 lines 1.66 kB
/*! * VUEX-LOCALSTORAGE v1.0.0 * (c) 2017 crossjs * Released under the MIT License. */ "use strict";function createStorage(e){void 0===e&&(e={});var r=e.namespace,t=e.initialState;void 0===t&&(t={});var a=e.provider;void 0===a&&(a=localStorage);var i=e.serialize;void 0===i&&(i=JSON.stringify);var n=e.deserialize;void 0===n&&(n=JSON.parse);var o=e.expires;void 0===o&&(o=0);var s=e.merge;return void 0===s&&(s=defaultMerge),r||(r="vuex-"+ ++index),{get:function(e){void 0===e&&(e="default");var i;try{var o=n(a.getItem(r+"-"+e)),c=o.value,u=o.expires;(0===u||u>Date.now())&&(i=n(c))}catch(e){}return s("default"===e?t:t[e],i)},set:function(e,t){1===arguments.length&&(t=e,e="default");try{a.setItem(r+"-"+e,i({value:i(t),expires:o?o+Date.now():o}))}catch(e){}}}}function createPersist(e){void 0===e&&(e={});var r=e.namespace,t=e.initialState,a=e.provider,i=e.serialize,n=e.deserialize,o=e.expires,s=e.merge;void 0===s&&(s=defaultMerge);var c=e.reducer;void 0===c&&(c=defaultReducer);var u=e.paths;return void 0===u&&(u=[]),function(e){var d=createStorage({namespace:r,initialState:t,provider:a,serialize:i,deserialize:n,merge:s,expires:o});e.replaceState(s(e.state,d.get())),e.subscribe(function(e,r){d.set(c(r,u))})}}function defaultMerge(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return Object.assign.apply(Object,[{}].concat(e))}function defaultReducer(e,r){return 0===r.length?e:r.reduce(function(r,t){if(e.hasOwnProperty(t)){var a;return Object.assign(r,(a={},a[t]=e[t],a))}return r},{})}Object.defineProperty(exports,"__esModule",{value:!0});var index=Date.now();exports.createStorage=createStorage,exports.default=createPersist;