tsbase
Version:
Base class libraries for TypeScript
28 lines (27 loc) • 1.17 kB
TypeScript
import { Observable } from '../Observable/Observable';
import { Result } from '../Result/Result';
import { Transaction } from './Transaction';
import { IEventStore, MemberLambda } from './IEventStore';
export declare const StateChangeUnnecessary = "State change unnecessary - nothing changed";
export declare const NoTransactionToUndo = "No transaction to undo";
export declare const NoTransactionToRedo = "No transaction to redo";
export declare class EventStore<T extends Object> implements IEventStore<T> {
private state;
private stateObservers;
private ledger;
constructor(state: T);
GetState<V>(member?: MemberLambda<T, V> | string): any;
SetState<V>(memberOrState: MemberLambda<T, V> | string | T, state?: T): Result<V | T>;
ObservableAt<V>(member?: MemberLambda<T, V> | string): Observable<V>;
GetLedger(): Array<Transaction<any>>;
Undo(): Result<T | undefined>;
Redo(): Result<T | undefined>;
private cloneOf;
private getPathFromMemberFunction;
private getStateAtPath;
private updateState;
private publishToDependentObservers;
private getTargetObservers;
private childOf;
private parentOf;
}