index.js (840B)
1 function localStorageWorks() { 2 try { 3 window.localStorage.setItem('_testDummy', 'TEST'); 4 return window.localStorage.getItem('_testDummy') === 'TEST'; 5 } catch (e) { 6 return false; 7 } 8 } 9 10 let storage; // eslint-disable-line import/no-mutable-exports 11 12 if (localStorageWorks()) { 13 storage = window.localStorage; 14 } else { 15 let _storage = {}; 16 storage = { 17 length: 0, 18 19 key: function(n) { 20 return Object.keys(_storage)[n]; 21 }, 22 23 removeItem: function(key) { 24 delete _storage[key]; 25 }, 26 27 getItem: function(key) { 28 return storage[key]; 29 }, 30 31 setItem: function(key, value) { 32 storage[key] = value; 33 }, 34 35 clear: function() { 36 _storage = {}; 37 } 38 }; 39 } 40 41 export default storage;