Get-port

get-port

Get an available TCP port

get-port helps us to find a free TCP port from a list of ports or the entire port pool!

The crux of this module is in the below function:

1
2
3
4
5
6
7
8
9
10
11
const getAvailablePort = options => new Promise((resolve, reject) => {
  const server = net.createServer();
  server.unref();
  server.on('error', reject);
  server.listen(options, () => {
      const {port} = server.address();
      server.close(() => {
          resolve(port);
      });
  });
});

Get it: npm install get-port

Sample usage:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const getPort = require('get-port');

(async () => {
    console.log(await getPort());
    //=> 51402
})();

(async () => {
    console.log(await getPort({port: [3000, 3001, 3002]}));
    // Will use any element in the preferred ports array if available, otherwise fall back to a random port
})();

(async () => {
    console.log(await getPort({port: getPort.makeRange(3000, 3100)}));
    // Will use any port from 3000 to 3100, otherwise fall back to a random port
})();

GIF FTW!

get-port

Suggest a module

Comments