delta-sync
Version:
A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.
41 lines (40 loc) • 1.52 kB
TypeScript
import { DatabaseAdapter, Attachment, BaseModel, FileItem, QueryOptions } from '../core/types';
interface IndexedDBAdapterOptions {
dbName?: string;
fileStoreName?: string;
}
export declare class IndexedDBAdapter implements DatabaseAdapter {
private readonly LOCAL_CHANGES_STORE;
private readonly ATTACHMENT_CHANGES_STORE;
private readonly META_STORE;
private readonly FILES_STORE;
private db;
private dbName;
private initPromise;
private stores;
constructor(options?: IndexedDBAdapterOptions);
isAvailable(): Promise<boolean>;
initSync(): Promise<void>;
private getCurrentDatabaseVersion;
private setupDbConnection;
private createRequiredStores;
private ensureStore;
readByVersion<T extends BaseModel>(storeName: string, options: QueryOptions): Promise<{
items: T[];
hasMore: boolean;
}>;
readBulk<T extends BaseModel>(storeName: string, ids: string[]): Promise<T[]>;
putBulk<T extends BaseModel>(storeName: string, items: T[]): Promise<T[]>;
deleteBulk(storeName: string, ids: string[]): Promise<void>;
clearStore(storeName: string): Promise<boolean>;
readFiles(fileIds: string[]): Promise<Map<string, Blob | ArrayBuffer | null>>;
saveFiles(files: FileItem[]): Promise<Attachment[]>;
deleteFiles(fileIds: string[]): Promise<{
deleted: string[];
failed: string[];
}>;
private ensureFileStore;
close(): Promise<void>;
deleteDatabase(): Promise<void>;
}
export {};