Initial commit

This commit is contained in:
2024-11-22 23:29:59 -07:00
commit f6379c144b
3594 changed files with 309643 additions and 0 deletions

47
lib/store.js Normal file
View File

@@ -0,0 +1,47 @@
export default function Store(objectStoreName) {
const transact = () => {
return this.db
.transaction(objectStoreName, "readwrite")
.objectStore(objectStoreName)
}
this.Get = (key) => {
return promisify(
transact().get(key)
)
}
this.Set = (key, value) => {
return promisify(
transact().put(value, key)
)
}
return this
}
Store.Open = async (dbName, objectStoreName) => {
let store = new Store(objectStoreName)
const request = indexedDB.open(dbName, 2)
request.onupgradeneeded = (event) => {
const db = event.target.result
const objectStore = db.createObjectStore(objectStoreName)
objectStore.createIndex('value', 'value', { unique: false })
}
store.db = await promisify(request)
return store
}
export function promisify(request) {
return new Promise((resolve, reject) => {
request.onsuccess = (event) => {
resolve(request.result)
}
request.onerror = (event) => {
reject(request.error)
}
})
}