import axios, { AxiosRequestConfig } from "axios"; import { User } from "@/contexts/auth-context"; export const Api = axios.create({ baseURL: "http://localhost:8080", responseType: "json", }); Api.interceptors.request.use(async (config) => { const jsonString = localStorage.getItem("userData"); if (jsonString) { const userData: User = JSON.parse(jsonString); config.headers.Authorization = `Bearer ${userData.token}`; } return config; }); export const customInstance = ( config: AxiosRequestConfig, options?: AxiosRequestConfig, ): Promise => { const source = axios.CancelToken.source(); const promise = Api({ ...config, ...options, cancelToken: source.token, paramsSerializer: { indexes: null }, }).then(({ data }) => data); return promise; };