1
0

index.ts 935 B

123456789101112131415161718192021222324252627282930313233
  1. import { resolve } from "node:path";
  2. import express, { Application, Router } from "express";
  3. import { verMajor } from "@src/constants.js";
  4. import { redirectToDocs } from "@src/utils.js";
  5. import { initSearchRoutes } from "@routes/search.js";
  6. import { initTranslationsRoutes } from "@routes/translations.js";
  7. import { initAlbumRoutes } from "@routes/album.js";
  8. const routeFuncs: ((router: Router) => unknown)[] = [
  9. initSearchRoutes,
  10. initTranslationsRoutes,
  11. initAlbumRoutes,
  12. ];
  13. const router = Router();
  14. export function initRouter(app: Application) {
  15. for(const initRoute of routeFuncs)
  16. initRoute(router);
  17. // host docs files
  18. router.use("/docs", express.static(resolve("./www/.vuepress/dist")));
  19. // redirect to docs page
  20. router.get("/", (_req, res) => redirectToDocs(res));
  21. // mount router
  22. app.use(`/v${verMajor}`, router);
  23. // redirect to docs page
  24. app.get("/docs", (_req, res) => redirectToDocs(res));
  25. }