Add assets/js/db.js
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user