Simpler / watered down version to MDN's one
function hasLocalStorage (){
try {
localStorage.setItem('test','test');
localStorage.removeItem('test');
return true;
} catch ( error ) {
return false;
}
}
Fake localStorage
function ensureLocalStorage (){
if(hasLocalStorage())
return
const ignore = () => {};
window.localStorage = {
removeItem : ignore ,
getItem : () => null ,
setItem : ignore ,
clear : ignore
}
}
Of course you could also implement non-persistent fake localstorage
function ensureLocalStorage (){
if(hasLocalStorage())
return
const storage = new Map;
window.localStorage = {
removeItem : ( key ) => storage.delete(key) ,
setItem : ( key , value ) => storage.set(key,value) ,
getItem : ( key ) => storage.get(ket) ,
clear : () => storage.clear()
}
}