Files
est-frame/node_modules/detect-port/lib/wait-port.js
2025-10-22 05:38:27 +00:00

33 lines
745 B
JavaScript
Executable File

'use strict';
const debug = require('debug')('wait-port');
const detect = require('./detect-port');
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
async function waitPort(port, options = {}) {
const { retryInterval = 1000, retries = Infinity } = options;
let count = 1;
async function loop() {
debug('retries', retries, 'count', count);
if (count > retries) {
const err = new Error('retries exceeded');
err.retries = retries;
err.count = count;
throw err;
}
count++;
const freePort = await detect(port);
if (freePort === port) {
await sleep(retryInterval);
return loop();
}
return true;
}
return await loop();
}
module.exports = waitPort;