rxdeep
Version:
RxJS deep state management
28 lines (27 loc) • 1.05 kB
TypeScript
import { Observable, Observer } from 'rxjs';
import { State } from './state';
import { KeyFunc, ListChanges } from './types/keyed-lists';
import { Change } from './types/changes';
export declare class KeyedState<T> extends Observable<T[] | undefined> implements Observer<T[] | undefined> {
readonly state: State<T[]>;
readonly keyfunc: KeyFunc<T>;
private _changes;
private _changesub;
private _watcher;
private _value;
constructor(state: State<T[]>, keyfunc: KeyFunc<T>);
next(t: T[] | undefined): void;
error(err: any): void;
complete(): void;
get value(): T[];
set value(t: T[]);
key(key: number | string): State<T>;
keyDownstream(key: number | string, current: () => T | undefined): Observable<{
value: T;
trace: any;
}>;
keyUpstream(key: number | string): Observer<Change<T>>;
index(key: number | string): Observable<number>;
changes(): Observable<ListChanges<T>>;
}
export declare function keyed<T>(state: State<T[]>, keyfunc: KeyFunc<T>): KeyedState<T>;