38 lines
948 B
TypeScript
Raw Normal View History

2023-03-03 03:12:27 +08:00
import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'
import { logout } from '../api/hooks/useUser'
2022-03-13 14:40:38 +08:00
2023-03-03 03:12:27 +08:00
const baseURL = String(import.meta.env.DEV ? '/netease' : import.meta.env.VITE_APP_NETEASE_API_URL)
2022-03-13 14:40:38 +08:00
const service: AxiosInstance = axios.create({
baseURL,
withCredentials: true,
timeout: 15000,
})
service.interceptors.request.use((config: AxiosRequestConfig) => {
return config
})
service.interceptors.response.use(
(response: AxiosResponse) => {
2022-08-03 23:48:39 +08:00
const res = response
2022-03-13 14:40:38 +08:00
return res
},
(error: AxiosError) => {
2023-03-03 03:12:27 +08:00
const { response } = error
const data = response?.data as any
if (data?.code === 301 && data?.message === '未登录') {
console.log('未登录')
logout()
}
2022-03-13 14:40:38 +08:00
return Promise.reject(error)
}
)
const request = async (config: AxiosRequestConfig) => {
const { data } = await service.request(config)
return data as any
}
export default request