mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-11 00:41:07 +03:30
36 lines
695 B
JavaScript
Vendored
36 lines
695 B
JavaScript
Vendored
'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;
|