Files
scriptc/tests/corpus/2983-http-static-close-idle.ts
Chris Tate 0b8b5d5bf7 feat(http): expand the static Node HTTP surface (#410)
* 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.
2026-09-24 23:39:09 -05:00

21 lines
681 B
TypeScript

import * as http from "node:http";
import * as net from "node:net";
const server = http.createServer((_incoming, outgoing) => outgoing.end("ok"));
server.listen(0, "127.0.0.1", () => {
const socket = net.connect(server.address().port, "127.0.0.1");
let wire = "";
socket.on("connect", () => socket.write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: keep-alive\r\n\r\n"));
socket.on("data", (chunk: Buffer) => {
wire += chunk.toString();
if (wire.includes("\r\n\r\nok")) {
console.log("response received");
server.closeIdleConnections();
}
});
socket.on("close", () => {
console.log("idle socket closed");
server.close();
});
});