24 lines
562 B
TypeScript
24 lines
562 B
TypeScript
import axios, { AxiosInstance } from 'axios';
|
|
import { useAuthStore } from '../stores/authStore';
|
|
|
|
export const createAPI = (): AxiosInstance => {
|
|
const { VITE_API_URL } = import.meta.env;
|
|
|
|
const api = axios.create({
|
|
baseURL: `${VITE_API_URL}/api/v1`,
|
|
headers: {
|
|
'Accept': 'application/json',
|
|
},
|
|
timeout: 30000,
|
|
});
|
|
|
|
api.interceptors.request.use((config) => {
|
|
const token = useAuthStore.getState().token;
|
|
if (token) {
|
|
config.headers.Authorization = `Bearer ${token}`;
|
|
}
|
|
return config;
|
|
});
|
|
|
|
return api;
|
|
}; |