axios.ts 714 B

123456789101112131415161718192021222324252627282930
  1. import axios, { type AxiosResponse } from 'axios'
  2. import { useAuthStore } from '@/store'
  3. const service = axios.create({
  4. baseURL: import.meta.env.VITE_GLOB_API_URL
  5. })
  6. service.interceptors.request.use(
  7. config => {
  8. const token = useAuthStore().token
  9. if (token) config.headers.Authorization = `Bearer ${token}`
  10. return config
  11. },
  12. error => {
  13. return Promise.reject(error.response)
  14. }
  15. )
  16. service.interceptors.response.use(
  17. (response: AxiosResponse): AxiosResponse => {
  18. if (response.status === 200) return response
  19. throw new Error(response.status.toString())
  20. },
  21. error => {
  22. return Promise.reject(error)
  23. }
  24. )
  25. export default service