UNPKG

1.15 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.freePort = exports.checkPortInUse = undefined;
7
8var _net = require('net');
9
10var _net2 = _interopRequireDefault(_net);
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14var checkPortInUse = exports.checkPortInUse = function checkPortInUse(port) {
15 return new Promise(function (resolve) {
16 var socket = _net2.default.createConnection({ port: port, timeout: 1000 }).once('timeout', function () {
17 socket.end();
18 resolve(false);
19 }).once('error', function () {
20 socket.end();
21 resolve(false);
22 }).once('connect', function () {
23 socket.end();
24 resolve(true);
25 });
26 });
27};
28
29var freePort = exports.freePort = function freePort() {
30 return new Promise(function (resolve, reject) {
31 var server = _net2.default.createServer().once('error', function (e) {
32 reject(e);
33 }).once('listening', function () {
34 var _server$address = server.address(),
35 port = _server$address.port;
36
37 server.close();
38 resolve(port);
39 }).listen(0, '0.0.0.0');
40 });
41};
\No newline at end of file