import axiosOriginal from "axios"; import { useAuth } from "~/composables/api/auth/useAuth"; import { API_ENDPOINTS } from "~/constants"; import Logger from "~/tools/logger"; export default defineNuxtPlugin(() => { const config = useRuntimeConfig(); const { token, logout } = useAuth(); const axios = axiosOriginal.create({ timeout: 30000, timeoutErrorMessage: "فرآیند بیش از حد انتظار طول کشید", baseURL: config.public.API_BASE_URL, }); axios.interceptors.request.use((config) => { if ( !config.url?.includes(API_ENDPOINTS.auth.signin) && !config.url?.includes(API_ENDPOINTS.account.send_otp) ) { config.headers.Authorization = token.value ? `Bearer ${token.value}` : undefined; } return config; }); axios.interceptors.response.use( (response) => { return response; }, async function (error) { await Logger.axiosErrorLog(error); // if (error.status === 401) { // logout(); // } return Promise.reject(error); } ); return { provide: { axios, }, }; });