2023-03-03 03:12:27 +08:00

38 lines
948 B
TypeScript

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