UNPKG

safe-storage

Version:

Provides in-memory storage implementation when localStorage or sessionStorage aren't available

3 lines (2 loc) 978 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var cache={},inMemoryStorage={getItem:function(e){return cache[e]},setItem:function(e,t){cache[e]=t},removeItem:function(e){delete cache[e]},clear:function(){Object.keys(cache).forEach(this.removeItem)},key:function(e){return cache[Object.keys(cache)[e]]},length:Object.keys(cache).length},storageAvailable=function(e){if("undefined"==typeof window)return!1;var t=window[e];try{var o="__storage_test__";return t.setItem(o,o),t.removeItem(o),!0}catch(e){return e instanceof DOMException&&(22===e.code||1014===e.code||"QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&0!==t.length}},safeLocalStorage=storageAvailable("localStorage")?window.localStorage:inMemoryStorage,safeSessionStorage=storageAvailable("sessionStorage")?window.sessionStorage:inMemoryStorage;exports.safeLocalStorage=safeLocalStorage,exports.safeSessionStorage=safeSessionStorage; //# sourceMappingURL=safe-storage.js.map