Files
CPLv4.0/utils/indexedDB.js

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