- main
- manifest
- deps
- main
- Install
- Run
import { encodeUrl } from "@borderless/base64";
const MAX_BODY_CONVERT_SIZE = 4 * 1024;
async function handler(event) {
let req = event.request;
if (req.method === "POST") {
let body = await req.arrayBuffer();
if (body.byteLength < MAX_BODY_CONVERT_SIZE && body.byteLength > 1) {
console.log("Converting POST body to base64 query param...");
const encoded = encodeUrl(body);
const url = new URL(req.url);
url.searchParams.set("postdata", encoded);
console.log("GET request URL is " + url);
return fetch(
new Request(url.toString(), {
method: "GET",
headers: req.headers
}),
{
backend: "origin_0"
}
);
}
}
return fetch(req, {
backend: "origin_0"
});
}
addEventListener("fetch", (event) => event.respondWith(handler(event)));