| 137 | } |
| 138 | |
| 139 | async function getFreePort() { |
| 140 | return new Promise((resolvePromise, rejectPromise) => { |
| 141 | const server = net.createServer() |
| 142 | server.listen(0, '127.0.0.1', () => { |
| 143 | const address = server.address() |
| 144 | server.close(() => { |
| 145 | if (address && typeof address === 'object') { |
| 146 | resolvePromise(address.port) |
| 147 | return |
| 148 | } |
| 149 | rejectPromise(new Error('Could not allocate a TCP port')) |
| 150 | }) |
| 151 | }) |
| 152 | server.on('error', rejectPromise) |
| 153 | }) |
| 154 | } |
| 155 | |
| 156 | function httpGetJson(url) { |
| 157 | return new Promise((resolvePromise, rejectPromise) => { |