redux-persist
Version:
persist and rehydrate redux stores
37 lines (33 loc) • 1.22 kB
JavaScript
exports.__esModule = true;
exports.default = getStoredState;
var _constants = require('./constants');
function getStoredState(config) {
var transforms = config.transforms || [];
var storageKey = '' + (config.keyPrefix !== undefined ? config.keyPrefix : _constants.KEY_PREFIX) + config.key;
var storage = config.storage;
var debug = config.debug;
var deserialize = config.serialize === false ? function (x) {
return x;
} : defaultDeserialize;
return storage.getItem(storageKey).then(function (serialized) {
if (!serialized) return undefined;else {
try {
var state = {};
var rawState = deserialize(serialized);
Object.keys(rawState).forEach(function (key) {
state[key] = transforms.reduceRight(function (subState, transformer) {
return transformer.out(subState, key, rawState);
}, deserialize(rawState[key]));
});
return state;
} catch (err) {
if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/getStoredState: Error restoring data ' + serialized, err);
throw err;
}
}
});
}
function defaultDeserialize(serial) {
return JSON.parse(serial);
}
;