UNPKG

@redwoodjs/sdk

Version:

Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime

36 lines (35 loc) 1.04 kB
export const nodeToWebRequest = (req) => { const url = new URL(req.url, `http://${req.headers.host}`); return new Request(url.href, { method: req.method, headers: req.headers, body: req.method !== "GET" && req.method !== "HEAD" ? req : undefined, // @ts-ignore duplex: "half", }); }; export const webToNodeResponse = async (webResponse, nodeResponse) => { // Copy status and headers nodeResponse.statusCode = webResponse.status; webResponse.headers.forEach((value, key) => { nodeResponse.setHeader(key, value); }); // Stream the response if (webResponse.body) { const reader = webResponse.body.getReader(); try { while (true) { const { done, value } = await reader.read(); if (done) break; nodeResponse.write(value); } } finally { reader.releaseLock(); } } nodeResponse.end(); };