- main
- manifest
- deps
- main
- Install
- Run
const handler = async (event) => {
const responseLines = [];
let input = "/foo///bar//baz";
let regex = "/+";
let replace = "/";
let output = input.replace(new RegExp(regex, "g"), replace);
let log_line = `Replace multiple //// in URL paths with a single one: ${input} ${output}`;
console.log(log_line);
responseLines.push(log_line);
input = "www.example.com";
output = input.replace(/^(www\.)/,"");
log_line = `Remove leading www. from host header: ${input} ${output}`;
console.log(log_line);
responseLines.push(log_line);
input = "/foo/bar/";
output = input.replace(/\/$/,"");
log_line = `Remove trailing slash: ${input} ${output}`;
console.log(log_line);
responseLines.push(log_line);
input = "/products/furbles/12345/photos";
regex = "^/products/(\w+)/(\d+)(/(\w+))?$";
replace = "/legacy.cgi?cat=$1&id=$2&page=$4";
output = input.replace(new RegExp(regex), replace);
log_line = `Map path parameters: ${input} ${output}`;
console.log(log_line);
responseLines.push(log_line);
let headers = new Headers({ "Content-Type": "text/plain" });
let resp = new Response(responseLines.join("\n"), {
headers,
});
return resp;
};
addEventListener("fetch", event => event.respondWith(handler(event)));