@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
TypeScript
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>;