import axios, { AxiosRequestConfig, AxiosResponse, Method } from "axios"; // Initializing Axios instance const axiosInstance = axios.create(); export const apiURL = import.meta.env.VITE_API_URL || "http://localhost:7377"; interface AxiosRequestConfigPatch extends Omit { method?: Method; // axios sets it as string, which is unhelpful and can lead to bugs } export function configureAxiosInstance(withCredentials: boolean) { axiosInstance.defaults.withCredentials = withCredentials; } export function isAuthEnabled() { return axiosInstance.defaults.withCredentials; } export function backendApi( config: AxiosRequestConfigPatch ): Promise> { return axiosInstance.request({ baseURL: apiURL, ...config }); }