export default class BilliDB { DB_VERSION; DB_NAME; constructor(dbName, dbVersion) { this.DB_NAME = dbName; this.DB_VERSION = dbVersion; } async getDb() { return new Promise((resolve, reject) => { const request = window.indexedDB.open(this.DB_NAME, this.DB_VERSION); request.onerror = e => { console.log("Error opening db", e); reject("Error"); }; request.onsuccess = e => { console.log("connect erfolgreich"); // @ts-ignore resolve(e.target.result); }; request.onupgradeneeded = e => { console.log("onupgradeneeded"); // @ts-ignore const db = e.target.result; db.createObjectStore("cameras", { autoIncrement: false, keyPath: 'id' }); db.createObjectStore("brands", { autoIncrement: false, keyPath: 'schluessel' }); db.createObjectStore("conditions", { autoIncrement: false, keyPath: 'schluessel' }); db.createObjectStore("buildtypes", { autoIncrement: false, keyPath: 'schluessel' }); }; }); } async saveItem(item, storeId) { const db = await this.getDb(); return new Promise((resolve, reject) => { console.log("Starting Add Transaction"); // @ts-ignore const trans = db.transaction([storeId], 'readwrite'); trans.oncomplete = (e) => { resolve(e); }; trans.onerror = (e) => { console.log("on Error", e); reject(e); }; const store = trans.objectStore(storeId); store.add(item); store.onerror = (e) => { console.log("Error on Store", e); }; store.oncomplete = (e) => { console.log("oncomplete on Store", e); }; store.onsuccess = (e) => { console.log("onsuccess on Store", e); }; }); } async saveItems(items, storeId) { const db = await this.getDb(); return new Promise((resolve, reject) => { console.log("Starting Add Transaction"); // @ts-ignore const trans = db.transaction([storeId], 'readwrite'); trans.oncomplete = (e) => { resolve(e); }; trans.onerror = (e) => { console.log("on Error", e); reject(e); }; const store = trans.objectStore(storeId); items.forEach((item) => { store.add(item); }); store.onerror = (e) => { console.log("Error on Store", e); }; store.oncomplete = (e) => { console.log("oncomplete on Store", e); }; store.onsuccess = (e) => { console.log("onsuccess on Store", e); }; }); } async getItems(storeId) { console.log("DB-getItems", storeId); const db = await this.getDb(); return new Promise((resolve, reject) => { console.log("DB-getItems: Starting Get Transaction"); const items = []; // @ts-ignore const trans = db.transaction([storeId], 'readonly'); trans.oncomplete = (e) => { resolve(items); }; trans.onerror = (e) => { console.log("on Error", e); reject(e); }; const store = trans.objectStore(storeId); console.log("--> We have try to get a cursor"); store.openCursor().onsuccess = (e) => { console.log("--> We have a cursor", e.target.result); const cursor = e.target.result; if (cursor) { items.push(cursor.value); cursor.continue(); } console.log("onsuccess on getAll", items); // resolve(e.target.result); }; store.onerror = (e) => { console.log("Error on getAll", e); }; store.oncomplete = (e) => { console.log("oncomplete on getAll", e); }; }); } } //# sourceMappingURL=index.js.map