UNPKG

sveltekit-sync

Version:
51 lines (50 loc) 1.54 kB
import { type DBSchema, type IDBPDatabase } from 'idb'; interface SyncMeta { key: string; value: any; } interface SyncQueueItem { id: string; [key: string]: any; } interface SyncOperation extends SyncQueueItem { status: 'pending' | 'processing' | 'completed' | 'failed'; error?: string; } interface SyncDBSchema extends DBSchema { sync_queue: { key: string; value: SyncOperation; }; sync_meta: { key: string; value: SyncMeta; }; [key: string]: { key: string; value: any; }; } export declare class IDBAdapter implements LocalAdapter<IDBPDatabase<SyncDBSchema>> { private db; private dbName; private version; constructor(dbName?: string, version?: number); private ensureInitialized; init(schema?: { [table: string]: string; }): Promise<void>; insert(table: string, data: any): Promise<any>; update(table: string, id: string, data: any): Promise<any>; delete(table: string, id: string): Promise<void>; find(table: string, query?: any): Promise<any[]>; findOne(table: string, id: string): Promise<any | null>; addToQueue(op: SyncOperation): Promise<void>; getQueue(): Promise<SyncOperation[]>; removeFromQueue(ids: string[]): Promise<void>; updateQueueStatus(id: string, status: SyncOperation['status'], error?: string): Promise<void>; getLastSync(): Promise<number>; setLastSync(timestamp: number): Promise<void>; getClientId(): Promise<string>; } export {};