20 lines
402 B
TypeScript
20 lines
402 B
TypeScript
import { FetchError } from 'ofetch'
|
|
|
|
export default defineNuxtPlugin(async (nuxtApp) => {
|
|
nuxtApp.hook('vue:error', (error) => {
|
|
if (!(error instanceof FetchError)) {
|
|
throw error
|
|
}
|
|
|
|
const status = error.response?.status ?? -1
|
|
|
|
if ([401, 419].includes(status)) {
|
|
navigateTo('/login')
|
|
}
|
|
|
|
if ([409].includes(status)) {
|
|
navigateTo('/verify-email')
|
|
}
|
|
})
|
|
})
|