Files
zhdiary/packages/nuxt/plugins/axios-fix.ts
T
2020-12-17 18:51:26 +07:00

33 lines
645 B
TypeScript

import { Plugin } from '@nuxt/types'
const plugin: Plugin = ({ $axios, error }) => {
$axios.defaults.baseURL =
typeof location !== 'undefined'
? location.origin
: `http://localhost:${process.env.SERVER_PORT}`
$axios.interceptors.response.use(
(r) => {
if (r.data?.error) {
error({
statusCode: r.status,
message: r.data.error,
})
throw new Error(r.data.error)
}
return r
},
(err) => {
error({
statusCode: err.response.status,
message: err.toJSON(),
})
return Promise.reject(err)
}
)
}
export default plugin