You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
891 B

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
import Home from '../views/Home.vue';
import auth from '@/middleware/auth';
import log from '@/middleware/log';
import { runMiddleware } from '@/lib/runMiddleware';
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'Home',
component: Home,
},
{
path: '/files',
name: 'Files',
component: () => import('../views/Files.vue'),
meta: {
middleware: [auth],
},
},
{
path: '/login',
name: 'Login',
component: () => import('../views/Login.vue'),
meta: {
middleware: [log],
},
},
];
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes,
});
router.beforeEach(async (to, from, next) => {
if (to.meta.middleware) runMiddleware({ from, to, next, router });
else next();
});
export default router;