You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
663 B
JavaScript

'use strict';
const Promise = require("bluebird");
const net = require("net");
const defaultValue = require("default-value");
module.exports = function waitForServer(port, options = {}) {
return new Promise((resolve, reject) => {
function check() {
let sock = new net.Socket();
sock.setTimeout(defaultValue(options.timeout, 50));
sock
.on("connect", () => {
resolve();
sock.destroy();
})
.on("timeout", check)
.on("error", check)
.connect(port);
}
return check();
});
};