frontend/api/api.ts
2025-10-21 20:49:47 -03:00

33 lines
805 B
TypeScript

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 = <T>(
config: AxiosRequestConfig,
options?: AxiosRequestConfig,
): Promise<T> => {
const source = axios.CancelToken.source();
const promise = Api({
...config,
...options,
cancelToken: source.token,
paramsSerializer: { indexes: null },
}).then(({ data }) => data);
return promise;
};