import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { once } from 'node:events'; import { createServer, connect } from 'node:net'; import { Worker } from 'node:worker_threads'; describe('fd-passing spike', () => { it('fd extracted on main and reconstructed as net.Socket on a worker thread', { timeout: 5000 }, async () => { // Spawn worker with an inline string source const workerCode = ` const { parentPort } = require('node:worker_threads'); const { Socket } = require('node:net'); parentPort.on('message', ({ fd }) => { const sock = new Socket({ fd, readable: true, writable: true }); sock.setNoDelay(true); sock.write('hello\\n'); sock.end(); }); `; const worker = new Worker(workerCode, { eval: true }); // Main TCP server const server = createServer(); server.on('connection', (socket: any) => { const handle = socket._handle; const fd: number = handle.fd; // Deregister libuv's read interest; no-op close to preserve the fd. handle.readStop(); handle.close = (cb: any) => { if (cb) cb(); }; socket._handle = null; socket.destroy(); worker.postMessage({ fd }); }); server.listen(0); await once(server, 'listening'); const port = (server.address() as any).port; // Client connects, reads the reply const client = connect(port); const chunks: Buffer[] = []; client.on('data', (c) => chunks.push(Buffer.isBuffer(c) ? c : Buffer.from(c))); await once(client, 'end'); assert.equal(Buffer.concat(chunks).toString('utf8'), 'hello\n'); server.close(); await worker.terminate(); }); });