|
- import axios from "axios";
-
- const axiosInstance = axios.create({
- baseURL: process.env.API_URL,
- });
-
- // Clear existing interceptors to prevent multiple registrations
- const clearInterceptors = () => {
- const requestInterceptor = axiosInstance.interceptors.request.use();
- const responseInterceptor = axiosInstance.interceptors.response.use();
-
- if (requestInterceptor) {
- axiosInstance.interceptors.request.eject(requestInterceptor);
- }
-
- if (responseInterceptor) {
- axiosInstance.interceptors.response.eject(responseInterceptor);
- }
- };
-
- export const SetupAxiosInterceptors = (inputToken: string | null) => {
- console.log("[debug] set up interceptors", inputToken);
-
- // Clear existing interceptors
- clearInterceptors();
-
- // Request interceptor
- axiosInstance.interceptors.request.use(
- (config) => {
- // Use the token passed in or retrieve from localStorage
- const token = inputToken ?? localStorage.getItem("accessToken");
- if (token) {
- config.headers.Authorization = `Bearer ${token}`;
- }
- return config;
- },
- (error) => {
- return Promise.reject(error);
- },
- );
-
- console.log("[debug] set up interceptors2", inputToken);
-
- // Response interceptor
- axiosInstance.interceptors.response.use(
- (response) => {
- return response;
- },
- (error) => {
- console.error("API Error:", error.response?.data || error);
- return Promise.reject(error);
- },
- );
- };
-
- export default axiosInstance;
|