UNPKG

tsbase

Version:

Base class libraries for TypeScript

28 lines (27 loc) 1.17 kB
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; }