@worldbrain/storex-sync
Version:
Offline-first syncing between multiple databases using Storex
47 lines (46 loc) • 1.8 kB
TypeScript
import { StorageRegistry } from "@worldbrain/storex";
import { ClientSyncLogCreationEntry, ClientSyncLogDeletionEntry, ClientSyncLogModificationEntry } from "../client-sync-log/types";
import { ReconcilerFunction } from "./types";
declare type CollectionModifications = {
[pk: string]: ObjectModifications;
};
interface ObjectModifications {
shouldBeCreated: boolean;
createdOn?: number;
isDeleted: boolean;
shouldBeDeleted: boolean;
fields: {
[field: string]: FieldModification;
};
}
declare type FieldModification = {
createdOn: number;
syncedOn?: number;
value: any;
};
export declare const reconcileSyncLog: ReconcilerFunction;
export declare function _processCreationEntry({ objectModifications, logEntry, collectionModifications, pkAsJson }: {
objectModifications: ObjectModifications;
logEntry: ClientSyncLogCreationEntry;
collectionModifications: CollectionModifications;
pkAsJson: any;
}): void;
export declare function _processDeletionEntry({ objectModifications, logEntry, collectionModifications, pkAsJson }: {
objectModifications: ObjectModifications;
logEntry: ClientSyncLogDeletionEntry;
collectionModifications: CollectionModifications;
pkAsJson: any;
}): void;
export declare function _processModificationEntry({ objectModifications, logEntry, collectionModifications, pkAsJson }: {
objectModifications: ObjectModifications;
logEntry: ClientSyncLogModificationEntry;
collectionModifications: CollectionModifications;
pkAsJson: any;
}): void;
export declare function _processModifications({ objectModifications, collection, pk, storageRegistry }: {
objectModifications: ObjectModifications;
collection: string;
pk: any;
storageRegistry: StorageRegistry;
}): any[];
export {};