@alauda-fe/common
Version:
Alauda frontend team common codes.
32 lines (31 loc) • 973 B
TypeScript
/**
* @packageDocumentation
* @module async-data
*/
import { Observable } from 'rxjs';
import { StringMap } from '../core/public-api';
import { DataError, DataMapper, DataStateAdapter, LoaderConfig, LoaderConfigWithInterval } from './types';
export interface AsyncLoadState<D> {
data?: D;
loading?: boolean;
error?: DataError;
}
export declare class AsyncDataLoader<D = unknown, P = StringMap> implements DataStateAdapter<D> {
private readonly reloadAction$$;
private readonly dataMapper$$;
snapshot: {
data: D;
params: P;
loading: boolean;
error: DataError;
};
loadState$: Observable<AsyncLoadState<D>>;
rawData$: Observable<D>;
data$: Observable<D>;
loading$: Observable<boolean>;
error$: Observable<DataError>;
constructor(config: LoaderConfig<D, P> | LoaderConfigWithInterval<D, P>);
reload(data?: D): void;
mapData(mapper: DataMapper<D>): void;
private buildFetcher;
}