22 lines
463 B
TypeScript
22 lines
463 B
TypeScript
import chadApi from '#shared/chad-api'
|
|
|
|
export default defineNuxtRouteMiddleware(async (to, from) => {
|
|
const { me, setMe } = useAuth()
|
|
|
|
if (!me.value) {
|
|
try {
|
|
setMe(await chadApi('/me', { method: 'GET' }))
|
|
return navigateTo({ name: 'Index' })
|
|
}
|
|
catch {
|
|
if (to.meta.auth !== 'guest') {
|
|
return navigateTo({ name: 'Login' })
|
|
}
|
|
}
|
|
}
|
|
|
|
if (me.value && to.meta.auth === 'guest') {
|
|
return navigateTo('/')
|
|
}
|
|
})
|