delta-sync
Version:
A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.
37 lines (36 loc) • 1.35 kB
TypeScript
import { ICoordinator, DatabaseAdapter, SyncView, DataChangeSet, SyncViewItem, SyncQueryOptions, SyncQueryResult } from './types';
export declare class Coordinator implements ICoordinator {
syncView: SyncView;
adapter: DatabaseAdapter;
private readonly TOMBSTONE_STORE;
private readonly TOMBSTONE_RETENTION;
private initialized;
constructor(adapter: DatabaseAdapter);
initSync(): Promise<void>;
private ensureInitialized;
disposeSync(): Promise<void>;
getCurrentView(): Promise<SyncView>;
readAll<T extends {
id: string;
}>(storeName: string): Promise<T[]>;
readBulk<T extends {
id: string;
}>(storeName: string, ids: string[]): Promise<T[]>;
putBulk<T extends {
id: string;
}>(storeName: string, items: T[]): Promise<T[]>;
extractChanges<T extends {
id: string;
}>(items: SyncViewItem[]): Promise<DataChangeSet>;
applyChanges<T extends {
id: string;
}>(changeSet: DataChangeSet): Promise<void>;
deleteBulk(storeName: string, ids: string[]): Promise<void>;
getAdapter(): Promise<DatabaseAdapter>;
rebuildSyncView(): Promise<void>;
query<T extends {
id: string;
}>(storeName: string, options?: SyncQueryOptions): Promise<SyncQueryResult<T>>;
private clearOldTombstones;
private addTombstones;
}