axios-series
Version:
A tool to extend axios to return sequentially
53 lines (46 loc) • 1.62 kB
TypeScript
import type { AxiosInstance } from 'axios';
import type { AxiosResponse } from 'axios';
import type { CancelToken } from 'axios';
import type { CancelTokenSource } from 'axios';
import type { InternalAxiosRequestConfig } from 'axios';
/**
* axios serializer wrapper function
*
* @param instance - axios or axios instance
* @param options - serializer options
* @return - axios instance with serializer feature
*/
declare function axiosSeries(instance: AxiosInstance, options?: SerializerOptions): {
<T = any, R = AxiosResponse<T, any>, D = any>(config: SerializerRequestOptions<D>): Promise<R>;
<T_1 = any, R_1 = AxiosResponse<T_1, any>, D_1 = any>(url: string, config?: SerializerRequestOptions<D_1> | undefined): Promise<R_1>;
/**
* all waiting series
*/
series: WaitingList;
/**
* clear all series
*/
clear(): void;
};
export default axiosSeries;
export declare interface SerializerOptions extends Record<string, unknown> {
unique?: boolean;
orderly?: boolean;
onCancel?: (err: any, config: InternalAxiosRequestConfig) => void;
}
export declare interface SerializerRequestOptions<D = any> extends InternalAxiosRequestConfig<D> {
unique?: boolean;
orderly?: boolean;
cancelToken?: CancelToken;
signal?: AbortSignal;
type?: string;
error?: boolean;
}
export declare interface Series {
promiseKey: symbol;
promise: Promise<any>;
source: CancelTokenSource;
abortController?: AbortController;
}
export declare type WaitingList = Record<string, Series[]>;
export { }