mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 23:00:30 +00:00
36 lines
785 B
JavaScript
36 lines
785 B
JavaScript
/**
|
|
* Persist all state children that don't have the property "dontPersist"
|
|
*
|
|
* @param key localStorage key to persist to
|
|
* @returns {function()}
|
|
*/
|
|
export default function (key) {
|
|
let timeout = null;
|
|
return _ref => {
|
|
const {getState} = _ref;
|
|
|
|
return next => action => {
|
|
clearTimeout(timeout);
|
|
timeout = setTimeout(() => {
|
|
const state = getState();
|
|
const stateToSave = {};
|
|
Object.keys(state).filter(k => !state[k].dontPersist).map(k => {
|
|
stateToSave[k] = state[k]
|
|
});
|
|
|
|
localStorage[key] = JSON.stringify(stateToSave);
|
|
}, 1000);
|
|
|
|
return next(action);
|
|
};
|
|
}
|
|
}
|
|
|
|
export function getState (key) {
|
|
if (!localStorage[key]) {
|
|
return undefined;
|
|
}
|
|
|
|
return JSON.parse(localStorage[key]);
|
|
}
|