ayakashi
Version:
The next generation web scraping framework
23 lines (22 loc) • 888 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRandomPort = void 0;
const http_1 = __importDefault(require("http"));
const retryOnErrorOrTimeout_1 = require("./retryOnErrorOrTimeout");
function getRandomPort() {
return retryOnErrorOrTimeout_1.retryOnErrorOrTimeOut(function () {
return new Promise(function (resolve, reject) {
const server = http_1.default.createServer();
server.listen(0);
server.once("listening", () => {
const addressInfo = server.address();
server.close(() => resolve(addressInfo.port));
});
server.once("error", reject);
});
});
}
exports.getRandomPort = getRandomPort;