mobx-fetch-observable
Version:
35 lines (34 loc) • 1.37 kB
TypeScript
import { IObservableValue } from "mobx";
declare type Fetch<T> = (sink: (newValue: T) => void) => void;
export interface IFetchObservable<T> {
pending: boolean;
started: boolean;
fulfilled: boolean;
current(): T | undefined;
fetch(): T | undefined;
set(value: T): T | undefined;
setFetch(newFetch: Fetch<T>): T | undefined;
forEach(run: ((newValue: T) => void)): void;
map<B>(fn: ((value: T) => B)): IFetchObservable<B>;
flatMap<B>(fn: ((value: T) => IFetchObservable<B>)): IFetchObservable<B>;
then<B>(fn: ((value: T) => (B | IFetchObservable<B>))): IFetchObservable<B>;
}
export declare class FetchObservable<T> implements IFetchObservable<T> {
private _started;
private _fetch;
private _pending;
value: IObservableValue<T | undefined>;
constructor(initialFetch?: Fetch<T> | undefined);
current(): T | undefined;
fetch(): T | undefined;
set(newValue: T | undefined): T | undefined;
setFetch(newFetch: Fetch<T>): T | undefined;
get pending(): boolean;
get started(): boolean;
get fulfilled(): boolean;
forEach(run: ((newValue: T) => void)): void;
map<B>(fn: (value: T) => B): IFetchObservable<B>;
flatMap<B>(fn: ((value: T) => IFetchObservable<B>)): IFetchObservable<B>;
then<B>(fn: ((value: T) => (B | IFetchObservable<B>))): IFetchObservable<B>;
}
export {};