chrobject
Version:
Stores chronicles of plain objects as diffs and snapshots
32 lines (31 loc) • 1.27 kB
TypeScript
/**
* Creator: Christian Hotz
* Company: hydra newmedia GmbH
* Date: 11.06.16
*
* Copyright hydra newmedia GmbH
*/
/**
* Imports
*/
import { Entity } from '../utils/Entity';
import { Snapshot } from '../utils/Snapshot';
import { Diff } from '../utils/Diff';
import { Creator } from '../utils/Creator';
export interface StorageStrategy {
findSnapshotById(id: string, entity: Entity, callback: (err: Error, snapshot?: Snapshot) => void): any;
findDiffsByCondition(condition: FindDiffsCondition, entity: Entity, callback: (err: Error, diffs?: Diff[]) => void): any;
insertSnapshot(snapshot: Snapshot, callback: (err: Error, snapshot?: Snapshot) => void): any;
upsertSnapshot(snapshot: Snapshot, callback: (err: Error, snapshot?: Snapshot) => void): any;
insertDiff(diff: Diff, callback: (err: Error, diff?: Diff) => void): any;
findLatestSnapshotBefore(id: string, timestamp: Date, entity: Entity, callback: (err: Error, snapshot?: Snapshot) => void): any;
findLatestDiffBefore(id: string, timestamp: Date, entity: Entity, callback: (err: Error, diff?: Diff) => void): any;
}
export interface FindDiffsCondition {
objIds?: string[];
timerange?: {
start?: Date;
end?: Date;
};
creator?: Creator;
}