()
| 1 | import http from 'http' |
| 2 | |
| 3 | export const getFreePort = async (): Promise<number> => { |
| 4 | return new Promise((resolve, reject) => { |
| 5 | const server = http.createServer(() => {}) |
| 6 | server.listen(0, () => { |
| 7 | const address = server.address() |
| 8 | server.close() |
| 9 | |
| 10 | if (address && typeof address === 'object') { |
| 11 | resolve(address.port) |
| 12 | } else { |
| 13 | reject(new Error('invalid address from server: ' + address?.toString())) |
| 14 | } |
| 15 | }) |
| 16 | }) |
| 17 | } |