mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 05:58:15 +08:00
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
import { KEY_PREFIX } from './constants';
|
|
export default function getStoredState(config) {
|
|
var transforms = config.transforms || [];
|
|
var storageKey = "".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);
|
|
var storage = config.storage;
|
|
var debug = config.debug;
|
|
var deserialize;
|
|
|
|
if (config.deserialize === false) {
|
|
deserialize = function deserialize(x) {
|
|
return x;
|
|
};
|
|
} else if (typeof config.deserialize === 'function') {
|
|
deserialize = config.deserialize;
|
|
} else {
|
|
deserialize = 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 ".concat(serialized), err);
|
|
throw err;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function defaultDeserialize(serial) {
|
|
return JSON.parse(serial);
|
|
} |