Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 20x 300x 300x 300x 28x 28x 28x 300x 300x 20x 128x 128x 128x 128x 128x 128x 170x 170x 170x 170x 170x 170x 170x 2x 2x 2x 2x 2x 2x | type storedItem = {name: string; encrypted?: boolean; content: Blob}
type DBName = 'resources' | 'building' | 'coarse_sense_map'
const DBVersions = {resources: 7, building: 1, coarse_sense_map: 1}
function openDB(name: DBName): Promise<IDBDatabase | undefined> {
return new Promise(resolve => {
const req = indexedDB.open('dictionary_builder_' + name, DBVersions[name])
req.onupgradeneeded = () => {
const db = req.result
Iif (db.objectStoreNames.contains(name)) db.deleteObjectStore(name)
db.createObjectStore(name, {keyPath: 'name'})
}
req.onsuccess = () => {
resolve(req.result)
}
})
}
export const IDB = {
setItem: async function (item: storedItem, database: DBName): Promise<boolean> {
const db = await openDB(database)
return new Promise(resolve => {
if (db) {
const req = db.transaction([database], 'readwrite', {durability: 'relaxed'}).objectStore(database).put(item)
req.onerror = () => {
throw Error('failed to store item ' + item.name)
}
req.onsuccess = () => resolve(true)
} else E{
throw Error
}
})
},
getItem: async function (name: string, database: DBName): Promise<storedItem | null> {
const db = await openDB(database)
return new Promise(resolve => {
if (db) {
const req = db.transaction([database], 'readonly', {durability: 'relaxed'}).objectStore(database).get(name)
req.onerror = () => resolve(null)
req.onsuccess = () => {
resolve(req.result)
}
} else E{
resolve(null)
}
})
},
removeItem: async function (name: string, database: DBName): Promise<boolean> {
const db = await openDB(database)
return new Promise(resolve => {
if (db) {
const req = db.transaction([database], 'readwrite', {durability: 'relaxed'}).objectStore(database).delete(name)
req.onerror = () => resolve(false)
req.onsuccess = () => resolve(true)
} else E{
resolve(false)
}
})
},
}
|