import { Router } from "@fastly/expressly";

const router = new Router();

router.get("(.*)", async (req, res) => {
  if (req.headers.has("cookie")) {
    let cookie = req.headers.get("Cookie");
    console.log("Original Cookie header: ", cookie);

    //put cookie value into a map
    let map = new Map();
    let items = cookie.split("; ");
    for (let i = 0; i < items.length; i++) {
      let keyValue = items[i].split("=");
      map.set(keyValue[0], keyValue[1]);
    }

    //filter cookie value
    let filtered_cookie_header_value = "";
    if (map.has("name2")) {
      filtered_cookie_header_value += "name2=" + map.get("name2");
    }
    if (map.has("name3")) {
      filtered_cookie_header_value += ";" + "name3=" + map.get("name3");
    }
    if (map.has("name6")) {
      filtered_cookie_header_value += ";" + "name6=" + map.get("name6");
    }
    // Clear the original Cookie header
    req.headers.delete("Cookie");

    // Overwrite the incoming Cookie header with the filtered values:
    console.log("Filtered Cookie header: ", filtered_cookie_header_value);
    req.headers.append("Cookie", filtered_cookie_header_value);
  }

  // send backend response to client
  res.send(await fetch(req, { backend: "origin_0" }));
});

router.listen();