UNPKG

typesafe-storage

Version:

Typesafe Web Storage API wrapper to support objects and arrays

3 lines (2 loc) 1.53 kB
"use strict";function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){function e(){this.values={}}var n=e.prototype;return n.clear=function(){this.values={}},n.getItem=function(e){return this.values[e]||null},n.key=function(e){return Object.keys(this.values)[e]||null},n.setItem=function(e,t){this.values[e]=t},n.removeItem=function(e){delete this.values[e]},t(e,[{key:"length",get:function(){return Object.keys(this.values).length}}]),e}(),r=function(){function e(e){this.storage=e}var n=e.prototype;return n.clear=function(){this.storage.clear()},n.getItem=function(e){var t=this.storage.getItem(e);if("string"!=typeof t)return t;try{return JSON.parse(t)}catch(e){return null}},n.key=function(e){return this.storage.key(e)},n.setItem=function(e,t){this.storage.setItem(e,JSON.stringify(t))},n.removeItem=function(e){this.storage.removeItem(e)},t(e,[{key:"length",get:function(){return this.storage.length}}]),e}();exports.createStorage=function(e){return new r(e&&function(e){try{var t="__typesafe-storage_test__";return e.setItem(t,t),e.removeItem(t),!0}catch(t){return t instanceof DOMException&&(22===t.code||1014===t.code||"QuotaExceededError"===t.name||"NS_ERROR_DOM_QUOTA_REACHED"===t.name)&&e&&0!==e.length}}(e)?e:new n)}; //# sourceMappingURL=typesafestorage.cjs.production.min.js.map