mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-02 19:50:44 +05:30
41 lines
875 B
JavaScript
41 lines
875 B
JavaScript
|
import logger from 'services/logger';
|
||
|
|
||
|
let _hasStorage = false;
|
||
|
|
||
|
try {
|
||
|
const test = 'test';
|
||
|
window.localStorage.setItem(test, test);
|
||
|
window.localStorage.removeItem(test);
|
||
|
|
||
|
_hasStorage = true;
|
||
|
} catch (err) {
|
||
|
// bad luck, no storage available
|
||
|
logger.info('No storage available'); // log for statistic purposes
|
||
|
}
|
||
|
|
||
|
export function hasStorage() {
|
||
|
return _hasStorage;
|
||
|
}
|
||
|
|
||
|
function DummyStorage() {
|
||
|
return {
|
||
|
getItem(key) {
|
||
|
return this[key] || null;
|
||
|
},
|
||
|
|
||
|
setItem(key, value) {
|
||
|
this[key] = value;
|
||
|
},
|
||
|
|
||
|
removeItem(key) {
|
||
|
Reflect.deleteProperty(this, key);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export const localStorage = _hasStorage ? window.localStorage : new DummyStorage();
|
||
|
|
||
|
export const sessionStorage = _hasStorage ? window.sessionStorage : new DummyStorage();
|
||
|
|
||
|
export default localStorage;
|