mirror of
https://github.com/qier222/YesPlayMusic.git
synced 2025-03-01 01:04:08 +08:00
38 lines
948 B
TypeScript
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
|