UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

62 lines (61 loc) 1.87 kB
import * as http from "http"; import * as net from "net"; function proxyHttpRequest(req, res, target) { var headers = { ...req.headers, "x-forwarded-host": req.headers.host }; if (req.socket.remoteAddress) { headers["x-forwarded-for"] = req.socket.remoteAddress; } var options = { hostname: "localhost", port: target.port, path: req.url, method: req.method, headers }; var proxyReq = http.request(options, function (proxyRes) { res.writeHead(proxyRes.statusCode || 500, proxyRes.headers); proxyRes.pipe(res); }); proxyReq.on("error", function (err) { console.error(`[daemon] Proxy error to port ${target.port}:`, err.message); if (!res.headersSent) { res.writeHead(502); res.end(`Bad Gateway: ${err.message}`); } }); req.pipe(proxyReq); } function proxyWebSocket(req, socket, head, target) { var proxySocket = net.connect(target.port, "localhost", function () { var reqLines = [`${req.method} ${req.url} HTTP/1.1`, ...Object.entries(req.headers).map(function (param) { var [k, v] = param; if (Array.isArray(v)) return `${k}: ${v.join(", ")}`; return `${k}: ${v}`; }), "", ""]; proxySocket.write(reqLines.join("\r\n")); if (head.length) { proxySocket.write(head); } socket.pipe(proxySocket); proxySocket.pipe(socket); }); proxySocket.on("error", function (err) { console.error(`[daemon] WebSocket proxy error to port ${target.port}:`, err.message); socket.end(); }); socket.on("error", function (err) { console.error(`[daemon] Client socket error:`, err.message); proxySocket.end(); }); socket.on("close", function () { proxySocket.end(); }); proxySocket.on("close", function () { socket.end(); }); } export { proxyHttpRequest, proxyWebSocket }; //# sourceMappingURL=proxy.native.js.map