UNPKG

@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
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