Files
woordjes/assets/js/db.js
T
2026-06-16 10:48:00 +02:00

50 lines
1.1 KiB
JavaScript

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;
}