mobile-cli-lib
Version:
common lib used by different CLI
31 lines (30 loc) • 975 B
JavaScript
;
var net = require("net");
var Future = require("fibers/future");
var Net = (function () {
function Net($logger) {
this.$logger = $logger;
}
Net.prototype.getFreePort = function () {
return (function () {
var server = net.createServer(function (sock) { });
var createServerFuture = new Future();
server.listen(0, function () {
var portUsed = server.address().port;
server.close();
if (!createServerFuture.isResolved()) {
createServerFuture.return(portUsed);
}
});
server.on("error", function (err) {
if (!createServerFuture.isResolved()) {
createServerFuture.throw(err);
}
});
return createServerFuture.wait();
}).future()();
};
return Net;
}());
exports.Net = Net;
$injector.register("net", Net);