From 460dd6e72ab33a5c3328160c23eaacee4fd34ad2 Mon Sep 17 00:00:00 2001 From: Thomas de Roo <2+thomas@noreply.localhost> Date: Tue, 16 Jun 2026 10:48:00 +0200 Subject: [PATCH] Add assets/js/db.js --- assets/js/db.js | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 assets/js/db.js diff --git a/assets/js/db.js b/assets/js/db.js new file mode 100644 index 0000000..4a268b6 --- /dev/null +++ b/assets/js/db.js @@ -0,0 +1,50 @@ +let db = null; + +export async function initDB() { + + if (db) { + return db; + } + + return new Promise((resolve, reject) => { + + const request = indexedDB.open('woordjesDB', 1); + + request.onupgradeneeded = (event) => { + + const database = event.target.result; + + if (!database.objectStoreNames.contains('words')) { + database.createObjectStore('words', { + keyPath: 'key' + }); + } + + if (!database.objectStoreNames.contains('sync_queue')) { + database.createObjectStore('sync_queue', { + keyPath: 'id', + autoIncrement: true + }); + } + + if (!database.objectStoreNames.contains('session')) { + database.createObjectStore('session', { + keyPath: 'key' + }); + } + }; + + request.onsuccess = (event) => { + db = event.target.result; + resolve(db); + }; + + request.onerror = () => { + reject(request.error); + }; + }); +} + +export function getDB() { + return db; +} \ No newline at end of file