@extra/proxy-router
Version:
A plugin for playwright & puppeteer to route proxies dynamically.
28 lines • 1.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const net_1 = __importDefault(require("net"));
const isAvailable = (options) => new Promise((resolve, reject) => {
const server = net_1.default.createServer();
server.unref();
server.on('error', reject);
server.listen(options, () => {
const { port } = server.address();
server.close(() => {
resolve(port);
});
});
});
const getPort = (options) => {
options = Object.assign({}, options);
if (typeof options.port === 'number') {
options.port = [options.port];
}
return (options.port || []).reduce((seq, port) => seq.catch(() => isAvailable(Object.assign({}, options, { port }))), Promise.reject());
};
exports.default = (options) => options
? getPort(options).catch(() => getPort(Object.assign(options, { port: 0 })))
: getPort({ port: 0 });
//# sourceMappingURL=port.js.map