mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-22 05:59:31 +08:00
* Fix static string position defaults and coercion * Stabilize HTTP timeout differential fixtures
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import * as http from "node:http";
|
|
|
|
let sendLate = () => {};
|
|
const server = http.createServer((_incoming, outgoing) => {
|
|
let sent = false;
|
|
const finish = () => {
|
|
if (sent) return;
|
|
sent = true;
|
|
outgoing.end("late");
|
|
};
|
|
const fallback = setTimeout(finish, 2000);
|
|
sendLate = () => { clearTimeout(fallback); finish(); };
|
|
});
|
|
|
|
server.listen(0, "127.0.0.1", () => {
|
|
const client = http.request({ host: "127.0.0.1", port: server.address().port }, (response) => {
|
|
console.log("response", response.statusCode);
|
|
response.on("data", (chunk) => console.log("body", chunk.toString()));
|
|
response.on("end", () => server.close());
|
|
});
|
|
client.setSocketKeepAlive(false);
|
|
client.setSocketKeepAlive(true, 1000);
|
|
client.setSocketKeepAlive();
|
|
console.log("destroyed initially", client.destroyed);
|
|
client.on("close", () => console.log("destroyed on close", client.destroyed));
|
|
client.setTimeout(1000);
|
|
console.log("same request", client.setTimeout(20, () => {
|
|
console.log("timeout");
|
|
sendLate();
|
|
}) === client);
|
|
client.end();
|
|
});
|