Inspired by https://gist.github.com/juliocesar/926500
function getLocalStorage() {
try {
window.localStorage.setItem('__test-localstorage__', '1');
window.localStorage.removeItem('__test-localstorage__');
return window.localStorage;
} catch (error) {
const localStorage = {
data: {},
setItem(id, val) {
this.data[id] = String(val);
},
getItem(id) {
// eslint-disable-next-line no-prototype-builtins
return this.data.hasOwnProperty(id) ? this.data[id] : null;
},
removeItem(id) {
return delete this.data[id];
},
clear() {
this.data = {};
},
};
return localStorage;
}
};