import Axios, { type AxiosError, type AxiosRequestConfig } from "axios"; export const AXIOS_INSTANCE = Axios.create(); export const customInstance = ( config: AxiosRequestConfig, options?: AxiosRequestConfig, ): Promise => { const source = Axios.CancelToken.source(); const promise = AXIOS_INSTANCE({ ...config, ...options, cancelToken: source.token, }).then(({ data }) => data); // @ts-expect-error promise.cancel = () => { source.cancel("Query was cancelled"); }; return promise; }; export type ErrorType = AxiosError; export type BodyType = BodyData;