tweb/public/0.2da18beaed4bd7796d8f.chun...

2 lines
16 KiB
JavaScript
Raw Normal View History

2022-03-25 16:07:29 +01:00
(this.webpackJsonp=this.webpackJsonp||[]).push([[0,21],{103:function(e,t,s){"use strict";s.d(t,"a",(function(){return d}));var r=s(52),i=s(94),n=s(75),o=s(93),a=s(42),c=s(41);class l{constructor(e,t){this.storageIsAvailable=!0,Object(a.a)(this,e),n.a.test&&(this.name+="_test"),this.storeName=t,this.log=Object(c.b)("IDB-"+this.storeName),this.openDatabase(!0),l.STORAGES.push(this)}static closeDatabases(e){this.STORAGES.forEach(t=>{if(e&&e===t)return;const s=t.db;s&&(s.onclose=()=>{},s.close())})}isAvailable(){return this.storageIsAvailable}openDatabase(e=!1){if(this.openDbPromise&&!e)return this.openDbPromise;try{var t=indexedDB.open(this.name,this.version);if(!t)return Promise.reject()}catch(e){return this.log.error("error opening db",e.message),this.storageIsAvailable=!1,Promise.reject(e)}let s=!1;return setTimeout(()=>{s||t.onerror({type:"IDB_CREATE_TIMEOUT"})},3e3),this.openDbPromise=new Promise((e,r)=>{t.onsuccess=i=>{s=!0;const n=t.result;let o=!1;this.log("Opened"),n.onerror=e=>{this.storageIsAvailable=!1,this.log.error("Error creating/accessing IndexedDB database",e),r(e)},n.onclose=e=>{this.log.error("closed:",e),!o&&this.openDatabase()},n.onabort=e=>{this.log.error("abort:",e);const t=e.target;this.openDatabase(o=!0),t.onerror&&t.onerror(e),n.close()},n.onversionchange=e=>{this.log.error("onversionchange, lol?")},e(this.db=n)},t.onerror=e=>{s=!0,this.storageIsAvailable=!1,this.log.error("Error creating/accessing IndexedDB database",e),r(e)},t.onupgradeneeded=e=>{s=!0,this.log.warn("performing idb upgrade from",e.oldVersion,"to",e.newVersion);var t=e.target.result;this.stores.forEach(e=>{t.objectStoreNames.contains(e.name)||((e,t)=>{var s;const r=e.createObjectStore(t.name);if(null===(s=t.indexes)||void 0===s?void 0:s.length)for(const e of t.indexes)r.createIndex(e.indexName,e.keyPath,e.objectParameters)})(t,e)})}})}delete(e){return Array.isArray(e)||(e=[].concat(e)),this.getObjectStore("readwrite",t=>e.map(e=>t.delete(e)),"")}clear(e){return this.getObjectStore("readwrite",e=>e.clear(),"",e)}save(e,t){return Array.isArray(e)||(e=[].concat(e),t=[].concat(t)),this.getObjectStore("readwrite",s=>e.map((e,r)=>s.put(t[r],e)),"")}saveFile(e,t){return t instanceof Blob||(t=Object(o.a)([t])),this.save(e,t)}get(e){return Array.isArray(e)||(e=[].concat(e)),this.getObjectStore("readonly",t=>e.map(e=>t.get(e)),"")}getObjectStore(e,t,s,r=this.storeName){let i;return s&&(i=performance.now(),this.log(s+": start")),this.openDatabase().then(n=>new Promise((o,a)=>{const c=n.transaction([r],e);c.onerror=e=>{clearTimeout(l),a(c.error)},c.oncomplete=e=>{clearTimeout(l),s&&this.log(s+": end",performance.now()-i);const t=d.map(e=>e.result);o(u?t:t[0])};const l=setTimeout(()=>{this.log.error("transaction not finished",c)},1e4),h=t(c.objectStore(r)),u=Array.isArray(h),d=u?h:[].concat(h)}))}getAll(){return this.getObjectStore("readonly",e=>e.getAll(),"")}}l.STORAGES=[];var h=function(e,t,s,r){return new(s||(s=Promise))((function(i,n){function o(e){try{c(r.next(e))}catch(e){n(e)}}function a(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))};function u(){}class d{constructor(e,t){this.db=e,this.storeName=t,this.cache={},this.getPromises=new Map,this.keysToSet=new Set,this.saveDeferred=Object(r.a)(),this.keysToDelete=new Set,this.deleteDeferred=Object(r.a)(),this.storage=new l(e,t),d.STORAGES.length?this.useStorage=d.STORAGES[0].useStorage:this.useStorage=!0,this.savingFreezed=!1,d.STORAGES.push(this),this.saveThrottled=Object(i.a)(()=>h(this,void 0,void 0,(function*(){const e=this.saveDeferred;this.saveDeferred=Object(r.a)();const t=this.keysToSet;if(t.size){const e=Array.from(t.values());t.clear();try{const t=e.map(e=>this.cache[e]);yield this.storage.save(e,t)}catch(t){console.error("[AS]: set error:",t,e)}}e.resolve(),t.size&&this.saveThrottled()})),16,!1),this.deleteThrottled=Object(i.a)(()=>h(this,void 0,void 0,(function*(){const e=this.deleteDeferred;this.deleteDeferred=Object(r.a)();const t=this.keysToDelete;if
//# sourceMappingURL=0.2da18beaed4bd7796d8f.chunk.js.map