You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
593 B
TypeScript

import Axios, { AxiosError, AxiosRequestConfig } from 'axios';
import { drcAxios } from 'main/configs/axios';
export const AXIOS_INSTANCE = drcAxios;
export const drcInstance = <T>(config: AxiosRequestConfig): Promise<T> => {
const source = Axios.CancelToken.source();
const promise = AXIOS_INSTANCE({ ...config, cancelToken: source.token }).then(({ data }) => data);
// @ts-ignore
promise.cancel = () => {
source.cancel('Query was cancelled by Vue Query');
};
return promise;
};
export default drcInstance;
export interface ErrorType<Error> extends AxiosError<Error> {}