17 lines
440 B
JavaScript
17 lines
440 B
JavaScript
const net = require('net')
|
|
|
|
const getPort = () => new Promise(resolve => {
|
|
const server = net.createServer()
|
|
server.listen(0, '127.0.0.1')
|
|
server.on('listening', () => {
|
|
const { port } = server.address()
|
|
server.close(() => {
|
|
// Wait a bit for port to free as we try to bind right after freeing it
|
|
setTimeout(() => {
|
|
resolve(port)
|
|
}, 200)
|
|
})
|
|
})
|
|
})
|
|
|
|
module.exports = { getPort }
|