UNPKG

mobx-fetch-observable

Version:
35 lines (34 loc) 1.37 kB
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 {};