delta-sync
Version:
A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.
41 lines (40 loc) • 1.51 kB
TypeScript
import { DatabaseAdapter } from './types';
import { SyncOptions } from './option';
export declare class SyncEngine {
localAdapter: DatabaseAdapter;
cloudAdapter?: DatabaseAdapter;
private options;
private syncStatus;
private isInitialized;
private pullTimer?;
private pushDebounceTimer?;
private storesToSync;
private pendingChanges;
constructor(localAdapter: DatabaseAdapter, storesToSync: string[], options?: SyncOptions);
initialize(): Promise<void>;
private ensureInitialized;
setCloudAdapter(cloudAdapter: DatabaseAdapter): Promise<void>;
save<T extends {
id: string;
}>(storeName: string, data: T | T[]): Promise<T[]>;
delete(storeName: string, ids: string | string[]): Promise<void>;
private cacheDataChanges;
pull(stores?: string[], since?: number): Promise<void>;
push(stores?: string[], since?: number): Promise<void>;
fullSync(): Promise<void>;
enableAutoSync(pullInterval?: number): void;
disableAutoSync(): void;
private executePullTask;
private clearPendingChanges;
private instantPush;
private handleDataChange;
updateSyncOptions(options: Partial<SyncOptions>): SyncOptions;
clearCloudStores(stores: string | string[]): Promise<void>;
clearLocalStores(stores: string | string[]): Promise<void>;
private canTriggerSync;
private hasPendingChanges;
private checkPullAvailable;
private checkPushAvailable;
private updateStatus;
dispose(): void;
}