Files
website/middleware/maintenance.global.ts
2024-04-20 00:03:10 +02:00

25 lines
572 B
TypeScript

export default defineNuxtRouteMiddleware(async (to) => {
const isMaintenance = ref<boolean>(true)
try {
await $fetch('/api/maintenance').then((maintenance) => {
isMaintenance.value = maintenance.enabled
})
}
catch (error) {
return navigateTo('/maintenance')
}
if (isMaintenance.value && to.path !== '/maintenance') {
return navigateTo('/maintenance', {
redirectCode: 301
})
}
if (!isMaintenance.value && to.path === '/maintenance') {
return navigateTo('/', {
redirectCode: 301,
replace: true
})
}
})