JSFiddle - React, Tailwind, and code Playground
by Pankaj Kargirwar
JavaScript
//promisify
function openDb_ref(name, ver) {
console.log("openDb ...");
var req = indexedDB.open(name, ver);
req.onsuccess = function(evt) {
// Equal to: db = req.result;
db = this.result;
console.log("openDb DONE");
};
req.onerror = function(evt) {
console.error("openDb:", evt.target.errorCode);
};
req.onupgradeneeded = function(evt) {
console.log("openDb.onupgradeneeded");
var store = evt.currentTarget.result.createObjectStore(
DB_STORE_NAME, {
keyPath: 'id',
autoIncrement: true
});
store.createIndex('biblioid', 'biblioid', {
unique: true
});
store.createIndex('title', 'title', {
unique: false
});
store.createIndex('year', 'year', {
unique: false
});
};
}
async function openDb(name, storeName, ver) {
return new Promise((resolve, reject) => {
var req = indexedDB.open(name, ver);
req.onupgradeneeded = (evt) => {
console.log("openDb.onupgradeneeded");
var store = evt.currentTarget.result.createObjectStore(
storeName, {
keyPath: 'id',
autoIncrement: true
});
store.createIndex('biblioid', 'biblioid', {
unique: true
});
store.createIndex('title', 'title', {
unique: false
});
store.createIndex('year', 'year', {
unique: false
});
};
req.onsuccess = (evt) => {
// Equal to: db = req.result;
resolve(req.result)
};
req.onerror = (evt) => {
reject(evt.target.errorCode);
};
})
}
main()
async function main() {
try {
let db = await openDb("db", "store", 1)
console.log("db opened")
var tx = db.transaction("store", "readwrite");
let store = tx.objectStore("store")
} catch (e) {
console.log(e)
}
}