import http from 'node:http'; import { once } from 'node:events'; const server = http.createServer((request, response) => response.end('kit')); server.listen(0, '127.0.0.1'); await once(server, 'listening'); const base = 'http://127.0.0.1:' + server.address().port; const agent = new http.Agent({ keepAlive: true, maxSockets: 1 }); try { const body = await new Promise((resolve, reject) => { const request = http.get(base, { agent }, (response) => { let text = ''; response.setEncoding('utf8'); response.on('data', (chunk) => (text += chunk)); response.on('end', () => resolve(text)); response.on('error', reject); }); request.on('error', reject); }); console.log(body); } finally { agent.destroy(); server.closeAllConnections(); await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())), ); }