1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.freePort = exports.checkPortInUse = undefined;
|
7 |
|
8 | var _net = require('net');
|
9 |
|
10 | var _net2 = _interopRequireDefault(_net);
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 | var 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 |
|
29 | var 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 |