UNPKG

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
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; }