@privateid/ultra-web-sdk-alpha
Version:
CryptoNets WebAssembly SDK
148 lines • 5.68 kB
JavaScript
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