UNPKG

@privateid/ultra-web-sdk-alpha

Version:
148 lines 5.68 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { detect } from 'detect-browser'; import { printLogs } from './utils'; /** * @category Utils */ export const read = (result) => __awaiter(void 0, void 0, void 0, function* () { let readResult; let deleteResult; let keyToReturn; while (!readResult && !deleteResult) { try { readResult = yield readKey(`/privid/${result}`); } catch (e) { clearDB(); } if (readResult !== undefined) { keyToReturn = readResult; deleteResult = yield clearDB(); } } return keyToReturn; }); /** * @category Utils */ export function readKey(key) { const indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; if (!indexedDB) return Promise.reject(new Error('IndexedDB not available')); return new Promise((resolve, reject) => { const open = indexedDB.open('/privid-wasm', 21); open.onerror = function () { resolve(false); }; open.onupgradeneeded = function () { open.result.createObjectStore('/privid-wasm'); }; open.onsuccess = function () { try { const db = open.result; const tx = db.transaction('/privid-wasm', 'readwrite'); const store = tx.objectStore('/privid-wasm'); const getKey = store.get(key); getKey.onsuccess = function () { resolve(getKey.result); }; tx.onerror = function () { reject(tx.error); }; tx.oncomplete = function () { }; } catch (e) { // } }; }); } export const clearCache = () => __awaiter(void 0, void 0, void 0, function* () { localStorage.clear(); const req = window.indexedDB.deleteDatabase('/privid'); req.onsuccess = function () { }; req.onerror = function () { }; req.onblocked = function () { }; const req2 = window.indexedDB.deleteDatabase('/privid_wasm'); req2.onsuccess = function (e) { printLogs(`success': `, e); }; req2.onerror = function (e) { printLogs(`error': `, e, 'ERROR'); }; req2.onblocked = function (e) { printLogs(`blocked': `, e, 'ERROR'); }; const req3 = window.indexedDB.deleteDatabase('emscripten_filesystem'); req3.onsuccess = function () { }; req3.onerror = function () { }; req3.onblocked = function () { }; }); /** * This function clears the local database * @category Utils */ export function clearDB() { return __awaiter(this, void 0, void 0, function* () { const { name: browserName, os } = detect(); const req = window.indexedDB.deleteDatabase('/privid'); req.onsuccess = function () { }; req.onerror = function () { }; req.onblocked = function () { }; const req2 = window.indexedDB.deleteDatabase('/privid_wasm'); req2.onsuccess = function () { }; req2.onerror = function () { }; req2.onblocked = function () { }; const req3 = window.indexedDB.deleteDatabase('emscripten_filesystem'); req3.onsuccess = function () { }; req3.onerror = function () { }; req3.onblocked = function () { }; const indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; if (!indexedDB) return Promise.reject(new Error('IndexedDB not available')); return new Promise((resolve, reject) => { const open = indexedDB.open('/privid', 21); open.onerror = function () { reject(open.error); }; open.onupgradeneeded = function () { open.result.createObjectStore('FILE_DATA'); }; open.onsuccess = function () { try { const db = open.result; const tx = db.transaction('FILE_DATA', 'readwrite'); const store = tx.objectStore('FILE_DATA'); let getKey = null; // if(result !== undefined) getKey = store.delete(result); getKey = store.clear(); // store.put(billing_skumap, '/privid/billing_skumap.json'); tx.onerror = function () { reject(tx.error); }; tx.oncomplete = function () { try { db.close(); } catch (e) { // } resolve('deleted'); }; } catch (e) { // } }; }); }); } //# sourceMappingURL=dbUtils.js.map