index.ts 800 B

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