index.ts 984 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright (C) 2012-2021 Zammad Foundation, https://zammad-foundation.org/
  2. import authenticationGuard from '@common/router/guards/before/authentication'
  3. import type { App } from 'vue'
  4. import {
  5. createRouter,
  6. createWebHashHistory,
  7. Router,
  8. RouteRecordRaw,
  9. } from 'vue-router'
  10. import type { RouteRecordMeta } from '@common/types/router'
  11. import permissionGuard from '@common/router/guards/before/permission'
  12. import headerTitleGuard from '@common/router/guards/after/headerTitle'
  13. declare module 'vue-router' {
  14. // eslint-disable-next-line @typescript-eslint/no-empty-interface
  15. interface RouteMeta extends RouteRecordMeta {}
  16. }
  17. export default function initializeRouter(
  18. app: App,
  19. routes: Array<RouteRecordRaw>,
  20. ): Router {
  21. const router: Router = createRouter({
  22. history: createWebHashHistory(),
  23. routes,
  24. })
  25. router.beforeEach(authenticationGuard)
  26. router.beforeEach(permissionGuard)
  27. router.afterEach(headerTitleGuard)
  28. app.use(router)
  29. return router
  30. }