UNPKG

ngx-remotedata

Version:

RemoteData: Slaying a UI Antipattern with Angular

43 lines (42 loc) 2.25 kB
import { Observable } from 'rxjs'; export interface NotAsked { readonly tag: 'NotAsked'; } export interface InProgress<T> { readonly tag: 'InProgress'; readonly value: T | undefined; } export interface Failure<E, T> { readonly tag: 'Failure'; readonly value: T | undefined; error: E; } export interface Success<T> { readonly tag: 'Success'; readonly value: T; } export declare const notAsked: <T, E = string>() => RemoteData<T, E>; export declare const inProgress: <T, E = string>(value?: T | undefined) => RemoteData<T, E>; export declare const failure: <T, E = string>(error: E, value?: T | undefined) => RemoteData<T, E>; export declare const success: <T, E = string>(value: T) => RemoteData<T, E>; export declare const isNotAsked: <T, E>(value: unknown) => value is NotAsked; export declare const isInProgress: <T, E>(value: unknown) => value is InProgress<T>; export declare const isFailure: <T, E>(value: unknown) => value is Failure<E, T>; export declare const isSuccess: <T, E>(value: unknown) => value is Success<T>; export declare const isRemoteData: <T, E = string>(value: unknown) => value is RemoteData<T, E>; export declare const fold: <T, E>(onNotAsked: () => T, onInProgress: (value: T | undefined) => T, onFailure: (error: E, value: T | undefined) => T, onSuccess: (value: T) => T, rd: RemoteData<T, E>) => T; export declare const getOrElse: <T, E>(rd: RemoteData<T, E>, defaultValue: T) => T; export declare const map: <A, B, E>(fn: (a: A) => B, rd: RemoteData<A, E>) => RemoteData<B, E>; export declare const mapFailure: <A, E, F>(fn: (e: E) => F, rd: RemoteData<A, E>) => RemoteData<A, F>; export declare const chain: <A, B, E>(fn: (a: A) => RemoteData<B, E>, rd: RemoteData<A, E>) => RemoteData<B, E>; /** * Emits only when source Observable is a Success * @returns Success<T> */ export declare function filterSuccess(): <T, E>(source: Observable<RemoteData<T, E>>) => Observable<Success<T>>; /** * Emits only when source Observable is a Failure * @returns Failure<E, T> */ export declare function filterFailure(): <T, E>(source: Observable<RemoteData<T, E>>) => Observable<Failure<E, T>>; export declare type RemoteData<T, E = string> = NotAsked | InProgress<T> | Failure<E, T> | Success<T>;