"use strict";

const express = require("express"),
  fs = require("fs"),
  url = require("url");

const router = express.Router();

/* This router only handles HTML files and is used
 * to replace BASEPATH */
router.get("/*", (req, res, next) => {
  const parts = url.parse(req.url),
    basePath = req.app.get("basePath");

  if (!/^\/[^/]+\.html$/.exec(parts.pathname)) {
    return next();
  }

  console.log("Attempting to parse 'frontend" + parts.pathname + "'");

  /* Replace <script>'<base href="/BASEPATH/">';</script> in index.html with
   * the basePath */
  fs.readFile("frontend" + parts.pathname, "utf8", function(error, content) {
    if (error) {
      return next();
    }
    res.send(content.replace(
      /<script>'<base href="BASEPATH">';<\/script>/,
      "<base href='" + basePath + "'>"));
  });
});

module.exports = router;
