UNPKG

magner

Version:

Universal admin panel magnetic to any backend

29 lines (24 loc) 679 B
import { createRouter, createWebHistory, Router, RouteRecordRaw, } from 'vue-router'; import type { RoutingConfig } from 'lib/types/configs/routing'; import makeRoutes from './make-routes'; export interface RoutingFinalConfig { router: Router, routing: RoutingConfig, } export type RouterController = () => RoutingFinalConfig; export const routerController = <ROLE extends string>(config: RoutingConfig): RouterController => () => { const routes = makeRoutes(config.routes); const router = createRouter({ history: createWebHistory(config.global.suffixUrl), routes: routes as RouteRecordRaw[], }); return { router, routing: config, }; };