@hiki9/rich-domain
Version:
Rich Domain is a library that provides a set of tools to help you build complex business logic in NodeJS using Domain Driven Design principles.
24 lines • 1.36 kB
TypeScript
import { EntityProps, HistorySubscribe, IEntity, IEntityMetaHistory, SnapshotCallbacks, SnapshotInput } from "../interface/types";
import { Snapshot } from "./history-snapshot";
export declare class EntityMetaHistory<T extends EntityProps> implements IEntityMetaHistory<T> {
initialProps: T;
snapshots: Snapshot<T>[];
private callbacks?;
onChange: Array<(snapshot: Snapshot<T>) => void>;
constructor(props: T, callbacks?: SnapshotCallbacks<T>);
addSnapshot(data: SnapshotInput<T>): void;
deepWatch(rootEntity: IEntity<any>, onChangeCallback: (entity: IEntity<any>, snapshot: Snapshot<any>) => void, childrenEntity?: IEntity<any>): void;
getSnapshotFromUpdatedKey(key: any): Snapshot<T>[];
hasChange(key: string): boolean;
subs<E extends IEntity<T>>(entity: E, onChange: (snapshot: Snapshot<T>, ...rest: IEntity<any>[]) => any, parents?: IEntity<any>[], result?: any[]): any[];
subscribe<E extends IEntity<T>>(entity: E | E[], subscribeProps: HistorySubscribe<T>, initialProps?: E[]): void;
protected deepSearchSnapshots(entity: IEntity<T>, key: keyof T): any[];
resolve<T>(initialValues: T[], currentValues: T[]): {
toCreate: T[];
toDelete: T[];
toUpdate: T[];
};
private resolveEachPropsToDelete;
private resolveEachPropsToUpsert;
}
//# sourceMappingURL=history.d.ts.map