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