JSFiddle - React, Tailwind, and code Playground
HTML
<button onclick="getData()">get</button>
<button onclick="deleteData()">delete</button>
JavaScript
window.idb = (function () {
'use strict';
var db, indexedDB, IDBTransaction, IDBKeyRange;
function indexedDBError(event) {
if (typeof console !== "undefined") {
console.error("An error occurred", event);
}
}
function insertInto(model, data, successCallback) {
console.log("inserting into model "+model);
var transaction = db.transaction([model], IDBTransaction.READ_WRITE || 'readwrite'), store, i, request, total = data.length;
function successCallbackInner() {
total = total - 1;
if (total === 0) {
successCallback();
}
}
transaction.onerror = indexedDBError;
store = transaction.objectStore(model);
for (i in data) {
if (data.hasOwnProperty(i)) {
console.log(data[i]);
request = store.add(data[i]);
request.onsuccess = successCallbackInner;
request.onerror = indexedDBError;
}
}
}
function deleteAllFrom(model, successCallback) {
var transaction = db.transaction([model], IDBTransaction.READ_WRITE || 'readwrite'), store, request;
transaction.onerror = indexedDBError;
store = transaction.objectStore(model);
request = store.clear();
request.onerror = indexedDBError;
request.onsuccess = successCallback;
}
function selectAll(model, successCallback) {
var transaction = db.transaction([model], IDBTransaction.READ_ONLY || 'readonly'), store, request, results = [];
transaction.onerror = indexedDBError;
store = transaction.objectStore(model);
request = store.openCursor();
request.onerror = indexedDBError;
request.onsuccess = function (event) {
var result = event.target.result;
// When result is null the end is reached
if (!result) {
successCallback(results);
return;
}
results.push(result.value);
// Weird to hack...