diff options
| author | Roger Braun <roger@rogerbraun.net> | 2017-02-20 18:54:09 +0100 |
|---|---|---|
| committer | Roger Braun <roger@rogerbraun.net> | 2017-02-20 18:54:09 +0100 |
| commit | 6e388c01264b44ed54c89970ac2abacb08f6ff8d (patch) | |
| tree | d68ecdd3f41bebfd86c9fb6da69065fc1a4b54e6 /src/lib/persisted_state.js | |
| parent | de986b81d58436c903da119e102ecc87b81dd7ed (diff) | |
Compress saved state with zlib.
Diffstat (limited to 'src/lib/persisted_state.js')
| -rw-r--r-- | src/lib/persisted_state.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/persisted_state.js b/src/lib/persisted_state.js index 1e953361..de1e5383 100644 --- a/src/lib/persisted_state.js +++ b/src/lib/persisted_state.js @@ -1,6 +1,7 @@ import merge from 'lodash.merge' import objectPath from 'object-path' import { throttle } from 'lodash' +import { inflate, deflate } from 'pako' const defaultReducer = (state, paths) => ( paths.length === 0 ? state : paths.reduce((substate, path) => { @@ -35,14 +36,19 @@ const defaultStorage = (() => { })() const defaultSetState = (key, state, storage) => { - return storage.setItem(key, JSON.stringify(state)) + return storage.setItem(key, deflate(JSON.stringify(state), { to: 'string' })) } export default function createPersistedState ({ key = 'vuex', paths = [], getState = (key, storage) => { - const value = storage.getItem(key) + let value = storage.getItem(key) + try { + value = inflate(value, { to: 'string' }) + } catch (e) { + console.log("Couldn't inflate value... Maybe upgrading") + } return value && value !== 'undefined' ? JSON.parse(value) : undefined }, setState = throttle(defaultSetState, 5000), |
