movex-core-util
Version:
Movex Core Util is the library of utilities for Movex
23 lines (22 loc) • 702 B
TypeScript
export type NextStateGetter<T> = T | ((prev: T) => T);
export interface IObservable<T> {
get: () => T;
onUpdate: (fn: (state: T) => void) => () => void;
update: (getNextState: T | ((prev: T) => T)) => void;
}
export declare class Observable<T> implements IObservable<T> {
private _state;
private pubsy;
constructor(_state: T);
get(): T;
onUpdate(fn: (state: T) => void): () => void;
update(nextStateGetter: NextStateGetter<T>): this;
/**
* Ability to transform the state
*
* @param mapFn
* @returns
*/
map<T1>(mapFn: (state: T) => T1): Observable<T1>;
static getNextStateFrom: <T_1>(prev: T_1, a: NextStateGetter<T_1>) => T_1;
}