50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
import { openDB, deleteDB } from "idb";
|
|
|
|
// Exportiere die Funktion initializeDatabase
|
|
export async function initializeDatabase() {
|
|
try {
|
|
const db = await openDB("CPLDatabase", 1, {
|
|
upgrade(db) {
|
|
if (!db.objectStoreNames.contains("pdfs")) {
|
|
db.createObjectStore("pdfs");
|
|
}
|
|
if (!db.objectStoreNames.contains("pages")) {
|
|
db.createObjectStore("pages");
|
|
}
|
|
if (!db.objectStoreNames.contains("cplVariables")) {
|
|
db.createObjectStore("cplVariables");
|
|
}
|
|
},
|
|
});
|
|
return db;
|
|
} catch (error) {
|
|
if (error.name === "VersionError") {
|
|
console.warn(
|
|
"Versionskonflikt erkannt. Lösche und erstelle die Datenbank neu."
|
|
);
|
|
await deleteDB("CPLDatabase");
|
|
return initializeDatabase();
|
|
} else {
|
|
console.error("Fehler beim Öffnen der Datenbank:", error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Exportiere die Funktion getFromIndexedDB
|
|
export async function getFromIndexedDB(key) {
|
|
const db = await initializeDatabase();
|
|
return await db.get("cplVariables", key);
|
|
}
|
|
|
|
// Beispiel weitere Funktion für PDF-Speicherung
|
|
export async function storePDF(name, file) {
|
|
const db = await initializeDatabase();
|
|
await db.put("pdfs", file, name);
|
|
}
|
|
// Funktion zum Abrufen von PDF-Dateien aus der IndexedDB
|
|
export async function getPDF(name) {
|
|
const db = await initializeDatabase();
|
|
return await db.get("pdfs", name);
|
|
}
|