aboutsummaryrefslogtreecommitdiff
path: root/packages/client/src/router/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/client/src/router/index.ts')
-rw-r--r--packages/client/src/router/index.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/client/src/router/index.ts b/packages/client/src/router/index.ts
new file mode 100644
index 0000000..27ea978
--- /dev/null
+++ b/packages/client/src/router/index.ts
@@ -0,0 +1,54 @@
+import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
+
+const routes: RouteRecordRaw[] = [
+ {
+ path: "/",
+ name: "Home",
+ component: () => import("../views/Home.vue")
+ },
+ {
+ path: "/:repo([a-zA-Z0-9\\.\\-_]+)",
+ name: "Repository",
+ component: () => import("../views/Repository.vue"),
+ props: route => ({ repository: route.params.repo }),
+ children: [
+ {
+ path: "about",
+ name: "About",
+ component: () => import("../views/RepositoryAbout.vue")
+ },
+ {
+ path: "log",
+ name: "Log",
+ component: () => import("../views/RepositoryLog.vue")
+ },
+ {
+ path: "log/:commit([a-fA-F0-9]{40}$)",
+ name: "Commit",
+ component: () => import("../views/RepositoryCommit.vue"),
+ props: route => ({ commit: route.params.commit })
+ },
+ {
+ path: "tree/:path*",
+ name: "Tree",
+ component: () => import("../views/RepositoryTree.vue"),
+ props: route => ({ pathArr: route.params.path ? route.params.path : [] })
+ }
+ /* {
+ path: "",
+ component: () => import("../views/RepositoryRedirect")
+ } */
+ ]
+ },
+ {
+ path: "/:PageNotFound(.*)*",
+ component: () => import("../views/PageNotFound.vue")
+ }
+];
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes
+});
+
+export default router;