/// <reference types="@fastly/js-compute" />

const handler = async (event) => {
  // Get the request from the client.
  const req = event.request;
  // Remove a header from inbound requests.  Perhaps your origin server
  // is gzipping responses and you want to stop it doing that
  req.headers.delete("accept-encoding");

  // Add a header to an inbound request before passing it to origin
  // Maybe to allow origin servers to validate that requests came from
  // the CDN?
  req.headers.set("cdn-secret", "9yfncb340-6abf5oa-ejni22jkdg");

  const beresp = await fetch(req, {
    backend: "origin_0"
  });

  // Add headers to the response back to the browser
  beresp.headers.append("cache-control", "max-age=60");
  beresp.headers.set("content-security-policy", "default-src 'self'");

  // Remove headers from the response before sending it back to the browser
  beresp.headers.delete("x-amz-request-id");
  beresp.headers.delete("server");

  // Send our response back to the client.
  return beresp;
};

addEventListener("fetch", (event) => event.respondWith(handler(event)));