import http from 'node:http'; import { once } from 'node:events'; let ready = false; const server = http.createServer((request, response) => { if (request.url !== '/ready') return response.writeHead(404).end(); response .writeHead(ready ? 200 : 503, { 'content-type': 'text/plain' }) .end(ready ? 'ready' : 'not ready'); }); server.listen(0, '127.0.0.1'); await once(server, 'listening'); const base = 'http://127.0.0.1:' + server.address().port; try { let response = await fetch(base + '/ready'); await response.text(); console.log(response.status); ready = true; response = await fetch(base + '/ready'); await response.text(); console.log(response.status); } finally { server.closeAllConnections(); await new Promise((resolve, reject) => server.close((error) => (error ? reject(error) : resolve())), ); }