UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

30 lines (29 loc) 936 B
/** * @packageDocumentation * @module async-data */ import { HttpErrorResponse } from '@angular/common/http'; import { Observable } from 'rxjs'; import { Status } from '../core/public-api'; export interface DataStateAdapter<D> { rawData$: Observable<D>; data$: Observable<D>; loading$: Observable<boolean>; error$: Observable<DataError>; reload: () => void; } export type Fetcher<D, P> = (params: P) => Observable<D>; export interface LoaderConfig<D, P> { fetcher: Fetcher<D, P>; params$?: Observable<P>; params?: P; dataFilter?: (data: D, index: number) => boolean; silent?: boolean; } export interface LoaderConfigWithInterval<D, P> extends LoaderConfig<D, P> { interval: number; intervalFilter?: (index: number) => boolean; compare: string[] | ((a: D, b: D) => boolean); } export type DataError = Partial<HttpErrorResponse & Status>; export type DataMapper<D> = (data: D) => D;