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 | 88x 1648x 1648x 1648x 113x 113x 113x 1648x 1636x 88x 645x 636x 636x 636x 636x 636x 993x 990x 990x 990x 990x 990x 986x 10x 10x 10x 10x 10x 10x | 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) } }) }, } |