- main
- manifest
- deps
- main
- Install
- Run
const HEADER_PATTERNS = [
"fastly-debug-*",
"x-goog-*",
"x-github-*",
"x-amz-*",
"x-generator",
"via",
];
const LIST_POLICY = "block";
const headerRxList = HEADER_PATTERNS.map((globPattern) => {
const rx = `^${globPattern.replace("*",".*")}$`;
return new RegExp(rx, "i");
});
const handler = async (event) => {
const req = event.request;
const backendResponse = await fetch(req, {
backend: "origin_0"
});
for (const headerName of backendResponse.headers.keys()) {
const headerMatchesPattern = headerRxList.some(rx => rx.test(headerName));
if (
(LIST_POLICY === "allow" && headerMatchesPattern)
|| (LIST_POLICY === "block" && !headerMatchesPattern)
) {
continue;
}
backendResponse.headers.delete(headerName);
}
return backendResponse;
};
addEventListener("fetch", event => event.respondWith(handler(event)));