{
const httpHandler = async (request) => {
const { method, url, headers } = request;
const headersMap = {};
for (const [key, value] of headers) {
headersMap[key] = value;
}
return new Response(
JSON.stringify({
method,
url,
headers: headersMap,
message: "Hello World!"
}),
{
headers: {
"Content-Type": "application/json"
}
}
);
};
function newRequest() {
return new Request("http://foo.bar.baz/?toto=Tata", {
headers: {
foo: "bar"
}
});
}
const channel = new MessageChannel();
channel.port1.start();
channel.port2.start();
const server = WebRunHttp.newHttpServer(httpHandler);
const close = WebRunPorts.listenBidi(channel.port1, server);
invalidation.then(close);
const client = WebRunHttp.newHttpClient((input) =>
WebRunPorts.callBidi(channel.port2, input, {})
);
const request = newRequest();
const response = await client(request);
const json = await response.json();
return json;
}