You can add a mutator function to your config and setup a custom instance of axios.
module.exports = {petstore: {output: {...override: {mutator: {path: './api/mutator/custom-instance.ts',name: 'customInstance',},},}...},};
// custom-instance.tsimport Axios, { AxiosRequestConfig } from 'axios';export const AXIOS_INSTANCE = Axios.create({ baseURL: '<BACKEND URL>' }); // use your own URL here or environment variable// add a second `options` argument here if you want to pass extra options to each generated queryexport const customInstance = <T>(config: AxiosRequestConfig,options?: AxiosRequestConfig,): Promise<T> => {const source = Axios.CancelToken.source();const promise = AXIOS_INSTANCE({...config,...options,cancelToken: source.token,}).then(({ data }) => data);// @ts-ignorepromise.cancel = () => {source.cancel('Query was cancelled');};return promise;};// In some case with react-query and swr you want to be able to override the return error type so you can also do it here like thisexport type ErrorType<Error> = AxiosError<Error>;export type BodyType<BodyData> = BodyData;// Or, in case you want to wrap the body type (optional)// (if the custom instance is processing data before sending it, like changing the case for example)export type BodyType<BodyData> = CamelCase<BodyData>;