delta-sync
Version:
A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.
46 lines (45 loc) • 1.51 kB
TypeScript
import { DatabaseAdapter, Attachment, BaseModel } from '../core/types';
interface IndexedDBAdapterOptions {
dbName?: string;
fileStoreName?: string;
}
export declare class IndexedDBAdapter implements DatabaseAdapter {
private db;
private dbName;
private initPromise;
private stores;
private fileStoreName;
constructor(options?: IndexedDBAdapterOptions);
isAvailable(): Promise<boolean>;
initSync(): Promise<void>;
private ensureStore;
read<T extends BaseModel>(storeName: string, options?: {
limit?: number;
offset?: number;
since?: number;
}): 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<void>;
readFile(fileUrl: string): Promise<{
content: Blob | ArrayBuffer;
metadata: Attachment;
}>;
readFileMeta(fileUrl: string): Promise<{
metadata: Attachment;
}>;
saveFile(fileData: {
content: Blob | ArrayBuffer | string;
metadata: Omit<Attachment, 'id' | 'createdAt' | 'updatedAt'>;
}): Promise<Attachment>;
deleteFile(fileId: string): Promise<void>;
private ensureFileStore;
private extractFileId;
close(): Promise<void>;
deleteDatabase(): Promise<void>;
}
export {};