delta-sync
Version:
A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.
34 lines (33 loc) • 1.26 kB
TypeScript
import { ICoordinator, DatabaseAdapter, SyncView, DataChangeSet, SyncViewItem, SyncQueryOptions, SyncQueryResult } from './types';
export declare class Coordinator implements ICoordinator {
syncView: SyncView;
adapter: DatabaseAdapter;
private readonly SYNC_VIEW_STORE;
private readonly SYNC_VIEW_KEY;
private initialized;
constructor(adapter: DatabaseAdapter);
initSync(): Promise<void>;
private ensureInitialized;
disposeSync(): Promise<void>;
getCurrentView(): Promise<SyncView>;
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[], _ver?: number): Promise<void>;
getAdapter(): Promise<DatabaseAdapter>;
private rebuildSyncView;
refreshView(): Promise<void>;
query<T extends {
id: string;
}>(storeName: string, options?: SyncQueryOptions): Promise<SyncQueryResult<T>>;
private persistView;
}