1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
- const portfinder = require('portfinder');
- function runPortFinder(defaultPort, cb) {
- portfinder.basePort = defaultPort;
- portfinder.getPort((err, port) => {
- cb(err, port);
- });
- }
- function findPort(server, defaultPort, defaultPortRetry, fn) {
- let tryCount = 0;
- const portFinderRunCb = (err, port) => {
- tryCount += 1;
- fn(err, port);
- };
- server.listeningApp.on('error', (err) => {
- if (err && err.code !== 'EADDRINUSE') {
- throw err;
- }
- if (tryCount >= defaultPortRetry) {
- fn(err);
- return;
- }
- runPortFinder(defaultPort, portFinderRunCb);
- });
- runPortFinder(defaultPort, portFinderRunCb);
- }
- module.exports = findPort;
|