UNPKG

typesafe-storage

Version:

Typesafe Web Storage API wrapper to support objects and arrays

28 lines (26 loc) 842 B
// https://developer.mozilla.org/ja/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API const isStorageAvailable = (storage: Storage): boolean => { try { const key = '__typesafe-storage_test__'; storage.setItem(key, key); storage.removeItem(key); return true; } catch (e) { return ( e instanceof DOMException && // everything except Firefox (e.code === 22 || // Firefox e.code === 1014 || // test name field too, because code might not be present // everything except Firefox e.name === 'QuotaExceededError' || // Firefox e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored storage && storage.length !== 0 ); } }; export default isStorageAvailable;