diff --git a/src/lib/events-db.ts b/src/lib/events-db.ts index 7094213..b4b5296 100644 --- a/src/lib/events-db.ts +++ b/src/lib/events-db.ts @@ -1,62 +1,65 @@ -import { openDB, type IDBPDatabase } from 'idb'; -import type { CalendarEvent } from '@/lib/types'; +import { openDB, type IDBPDatabase } from "idb"; +import type { CalendarEvent } from "@/lib/types"; -const DB_NAME = 'LocalCalEvents'; +const DB_NAME = "LocalCalEvents"; const DB_VERSION = 1; -const EVENTS_STORE = 'events'; +const EVENTS_STORE = "events"; let dbPromise: Promise | null = null; function getDB() { - if (!dbPromise) { - dbPromise = openDB(DB_NAME, DB_VERSION, { - upgrade(db) { - if (!db.objectStoreNames.contains(EVENTS_STORE)) { - const store = db.createObjectStore(EVENTS_STORE, { keyPath: 'id' }); - store.createIndex('start', 'start'); - store.createIndex('title', 'title'); - } - }, - }); - } - return dbPromise; + if (!dbPromise) { + dbPromise = openDB(DB_NAME, DB_VERSION, { + upgrade(db) { + if (!db.objectStoreNames.contains(EVENTS_STORE)) { + const store = db.createObjectStore(EVENTS_STORE, { keyPath: "id" }); + store.createIndex("start", "start"); + store.createIndex("title", "title"); + } + }, + }); + } + return dbPromise; } export async function saveEvent(event: CalendarEvent): Promise { - const db = await getDB(); - await db.put(EVENTS_STORE, event); + const db = await getDB(); + await db.put(EVENTS_STORE, event); } export async function getEvents(): Promise { - const db = await getDB(); - return db.getAll(EVENTS_STORE); + const db = await getDB(); + return db.getAll(EVENTS_STORE); } export async function getEvent(id: string): Promise { - const db = await getDB(); - return db.get(EVENTS_STORE, id); + const db = await getDB(); + return db.get(EVENTS_STORE, id); } export async function deleteEvent(id: string): Promise { - const db = await getDB(); - await db.delete(EVENTS_STORE, id); + const db = await getDB(); + await db.delete(EVENTS_STORE, id); } export async function updateEvent(event: CalendarEvent): Promise { - const db = await getDB(); - await db.put(EVENTS_STORE, event); + const db = await getDB(); + await db.put(EVENTS_STORE, event); } -export async function getEventsByDateRange(startDate: string, endDate: string): Promise { - const db = await getDB(); - const tx = db.transaction(EVENTS_STORE, 'readonly'); - const index = tx.store.index('start'); - const events = await index.getAll(IDBKeyRange.bound(startDate, endDate)); - await tx.done; - return events; +export async function getEventsByDateRange( + startDate: string, + endDate: string, +): Promise { + const db = await getDB(); + const tx = db.transaction(EVENTS_STORE, "readonly"); + const index = tx.store.index("start"); + const events = await index.getAll(IDBKeyRange.bound(startDate, endDate)); + await tx.done; + return events; } export async function clearEvents(): Promise { - const db = await getDB(); - await db.clear(EVENTS_STORE); -} \ No newline at end of file + const db = await getDB(); + await db.clear(EVENTS_STORE); +}