Files
scriptc/tests/corpus/2975-http-static-client-controls.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

22 lines
798 B
TypeScript

import { createServer, request } from "node:http";
const server = createServer((req, res) => {
res.statusCode = 418;
res.end(req.method + " " + req.url);
});
server.listen(0, () => {
const outbound = request({ port: server.address().port, path: "/controls", method: "POST" }, (response) => {
let body = "";
response.on("data", (chunk: Buffer) => { body += chunk.toString("utf8"); });
response.on("end", () => {
console.log("reply", response.statusCode, response.statusMessage, body, outbound.finished, outbound.reusedSocket);
server.close();
});
});
console.log("initial", outbound.finished, outbound.reusedSocket);
outbound.setNoDelay(false);
outbound.setNoDelay();
outbound.end();
console.log("ended", outbound.finished, outbound.reusedSocket);
});