mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-31 07:23:06 +08:00
* feat(http): materialize static distinct header snapshots - Preserve precise string array types for whole incoming header and trailer collections. - Cover duplicate headers, trailers, and raw header reads against Node in both backends. - Refresh test-backed static HTTP compatibility claims. * feat(http): expand the static Node HTTP surface - Add HTTP module values, request and response lifecycle state, and socket controls. - Implement server timeout and connection shutdown behavior in the native runtime. - Cover C and LLVM behavior with Node differential fixtures, refresh compatibility evidence, and recover interrupted Sandbox streams. * fix(http): honor message timeout handlers - Keep server sockets open when request or response timeout listeners handle the event. - Add differential regressions and refresh the TypeScript 7 order baseline.
18 lines
666 B
TypeScript
18 lines
666 B
TypeScript
import * as http from "node:http";
|
|
import * as net from "node:net";
|
|
|
|
const server = http.createServer();
|
|
server.on("upgrade", (_request, socket) => {
|
|
server.closeAllConnections();
|
|
console.log("upgraded socket open", !socket.destroyed);
|
|
socket.end("ALIVE");
|
|
server.close();
|
|
});
|
|
server.listen(0, "127.0.0.1", () => {
|
|
const client = net.connect(server.address().port, "127.0.0.1");
|
|
let body = "";
|
|
client.on("connect", () => client.write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: Upgrade\r\nUpgrade: scr\r\n\r\n"));
|
|
client.on("data", (chunk: Buffer) => { body += chunk.toString(); });
|
|
client.on("end", () => console.log("received", body));
|
|
});
|