index.js
903 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { setupLayouts } from 'virtual:generated-layouts'
import { createRouter, createWebHistory } from 'vue-router/auto'
import { redirects, routes } from './additional-routes'
import { setupGuards } from './guards'
function recursiveLayouts(route) {
if (route.children) {
for (let i = 0; i < route.children.length; i++)
route.children[i] = recursiveLayouts(route.children[i])
return route
}
return setupLayouts([route])[0]
}
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
scrollBehavior(to) {
if (to.hash)
return { el: to.hash, behavior: 'smooth', top: 60 }
return { top: 0 }
},
extendRoutes: pages => [
...redirects,
...[
...pages,
...routes,
].map(route => recursiveLayouts(route)),
],
})
setupGuards(router)
export { router }
export default function (app) {
app.use(router)
}