rxdeep
Version:
RxJS deep state management
23 lines (22 loc) • 953 B
TypeScript
import { Observable, Observer } from 'rxjs';
import { Change } from './types/changes';
export declare class State<T> extends Observable<T | undefined> implements Observer<T | undefined> {
protected _value: T | undefined;
readonly downstream: Observable<Change<T>>;
readonly upstream: Observer<Change<T>>;
private _changesub;
constructor(initial: T | undefined);
constructor(initial: T | undefined, downstream: Observable<Change<T>>, upstream: Observer<Change<T>>);
next(t: T | undefined): void;
error(err: any): void;
complete(): void;
get value(): T;
set value(t: T);
sub<K extends keyof T>(key: K): State<T[K]>;
subDownstream<K extends keyof T>(key: K, current: () => T[K] | undefined): Observable<{
value: T[K] | undefined;
trace: any;
}>;
subUpstream<K extends keyof T>(key: K): Observer<Change<T[K]>>;
}
export declare function state<T>(initial: T | undefined): State<T>;