| 334 | } |
| 335 | |
| 336 | function getDB() { |
| 337 | if (dbPromise) return dbPromise; |
| 338 | |
| 339 | dbPromise = new Promise((resolve, reject) => { |
| 340 | const request = indexedDB.open(DB_NAME, DB_VERSION); |
| 341 | |
| 342 | request.onupgradeneeded = () => { |
| 343 | const db = request.result; |
| 344 | |
| 345 | if (!db.objectStoreNames.contains("files")) { |
| 346 | db.createObjectStore("files", { keyPath: "url" }); |
| 347 | } |
| 348 | |
| 349 | if (db.objectStoreNames.contains("postings")) { |
| 350 | db.deleteObjectStore("postings"); |
| 351 | } |
| 352 | }; |
| 353 | |
| 354 | request.onsuccess = () => resolve(request.result); |
| 355 | request.onerror = () => reject(request.error); |
| 356 | }); |
| 357 | |
| 358 | return dbPromise; |
| 359 | } |
| 360 | |
| 361 | function requestToPromise(request) { |
| 362 | return new Promise((resolve, reject) => { |