Skip to content

Commit 150b164

Browse files
fix: retry finding port when port is null and get ports in sequence
1 parent df25433 commit 150b164

File tree

5 files changed

+247
-165
lines changed

5 files changed

+247
-165
lines changed

lib/utils/findPort.js

+17-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
'use strict';
22

3-
const { getPortPromise } = require('portfinder');
3+
const pRetry = require('p-retry');
4+
const portfinder = require('portfinder');
45
const defaultPort = require('./defaultPort');
56
const defaultTo = require('./defaultTo');
67
const tryParseInt = require('./tryParseInt');
78

9+
function runPortFinder() {
10+
return new Promise((resolve, reject) => {
11+
portfinder.basePort = defaultPort;
12+
portfinder.getPort((error, port) => {
13+
if (error) {
14+
return reject(error);
15+
}
16+
17+
return resolve(port);
18+
});
19+
});
20+
}
21+
822
function findPort(port) {
9-
if (typeof port !== 'undefined') {
23+
if (port) {
1024
return Promise.resolve(port);
1125
}
1226

@@ -19,10 +33,7 @@ function findPort(port) {
1933
3
2034
);
2135

22-
return getPortPromise({
23-
port: defaultPort,
24-
stopPort: defaultPort + defaultPortRetry,
25-
});
36+
return pRetry(runPortFinder, { retries: defaultPortRetry });
2637
}
2738

2839
module.exports = findPort;

0 commit comments

Comments
 (0)