Files
website/middleware/maintenance.global.ts
Arthur DANJOU c698bfec8a lint code
Signed-off-by: Arthur DANJOU <arthurdanjou@outlook.fr>
2024-04-20 00:18:43 +02:00

25 lines
574 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,
})
}
})