UNPKG

@aviellv/async-request-rxjs-pipe

Version:

A pipe functions for rxjs 6+ which emits a three-state 'async-request' with a typed loading/sucess/error status object

21 lines (20 loc) 769 B
import { Observable } from 'rxjs'; /** * This pipe emits an AsyncRequest<TValue, TError> type */ export declare const asAsyncRequest: <TValue, TError>() => (source: Observable<any>) => Observable<AsyncRequest<TValue, TError>>; export declare type AsyncRequest<TValue, TError> = RequestLoading | RequestSuccess<TValue> | RequestError<TError>; export interface RequestLoading { state: "loading"; } export interface RequestSuccess<T> { state: "success"; value: T; } export interface RequestError<T> { state: "error"; value: T; } export declare const RequestLoading: () => RequestLoading; export declare const RequestSuccess: <T>(value: T) => RequestSuccess<T>; export declare const RequestError: <T>(value: T) => RequestError<T>;