@casipe/react-service-provider
Version:
React library sevice provider
31 lines (30 loc) • 1.1 kB
TypeScript
import { AxiosRequestConfig, AxiosResponse } from 'axios';
import { Observable, Subject } from 'rxjs';
import { RegistryParams } from './interfaces';
export default class Registry<T = any> {
private params;
private selfSubject;
private retriesCountdownTimer?;
id: number;
private responseSubject;
response$: Observable<AxiosResponse<T, any>>;
retries: number;
retryDelay: number;
retriesTimeout?: number;
tryCounter: number;
canRetry: boolean;
finish: boolean;
requesting: boolean;
get isCached(): boolean;
cachedData?: AxiosResponse<T>;
readonly axiosRequestConfig: AxiosRequestConfig;
private _cancelToken?;
constructor(params: RegistryParams, selfSubject: Subject<Registry>, retriesCountdownTimer?: ((origin: Registry) => void) | undefined);
private finishRetriesCountdownTimer;
private startRetriesCountdownTimer;
private countdownStrategy;
cancel(): void;
run(): Observable<AxiosResponse<T>>;
retry(): void;
static createRegistry<T = any>(params: RegistryParams): Observable<Registry<T>>;
}