From 3ce834db66e10491c0f342ecd7ad3e056f56882c Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Fri, 17 Apr 2020 12:16:21 +0100 Subject: [PATCH] fix: use portfinder instead of get-port License: MIT Signed-off-by: Henrique Dias --- package-lock.json | 25 ++++++++++++++++++++----- package.json | 2 +- src/daemon/config.js | 8 ++++---- test/e2e/launch.e2e.js | 6 +++++- 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b22bd30e..54a265578 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5007,11 +5007,6 @@ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" - }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -8528,6 +8523,26 @@ "find-up": "^3.0.0" } }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "pre-commit": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", diff --git a/package.json b/package.json index 801236e2d..f7fcec0e7 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,6 @@ "electron-updater": "^4.2.5", "fix-path": "^3.0.0", "fs-extra": "^9.0.0", - "get-port": "^5.1.1", "go-ipfs-dep": "0.4.23", "i18next": "^19.4.2", "i18next-electron-language-detector": "0.0.10", @@ -90,6 +89,7 @@ "is-ipfs": "^1.0.0", "multiaddr": "^7.4.3", "multiaddr-to-uri": "^5.1.0", + "portfinder": "^1.0.25", "recursive-readdir": "^2.2.2", "stream-to-pull-stream": "^1.7.3", "sudo-prompt": "^9.1.1", diff --git a/src/daemon/config.js b/src/daemon/config.js index d4947c5b5..d87d03566 100644 --- a/src/daemon/config.js +++ b/src/daemon/config.js @@ -2,7 +2,7 @@ const { join } = require('path') const fs = require('fs-extra') const multiaddr = require('multiaddr') const http = require('http') -const getPort = require('get-port') +const portfinder = require('portfinder') const { shell } = require('electron') const i18n = require('i18next') const { showDialog } = require('../dialogs') @@ -137,7 +137,7 @@ async function checkPortsArray (ipfsd, addrs) { continue } - const freePort = await getPort({ port: getPort.makeRange(port, port + 100) }) + const freePort = await portfinder.getPortPromise({ port: port, stopPort: port + 100 }) if (port !== freePort) { const opt = showDialog({ @@ -184,8 +184,8 @@ async function checkPorts (ipfsd) { const apiPort = parseInt(configApiMa.nodeAddress().port, 10) const gatewayPort = parseInt(configGatewayMa.nodeAddress().port, 10) - const freeGatewayPort = await getPort({ port: getPort.makeRange(gatewayPort, gatewayPort + 100) }) - const freeApiPort = await getPort({ port: getPort.makeRange(apiPort, apiPort + 100) }) + const freeGatewayPort = await portfinder.getPortPromise({ port: gatewayPort, stopPort: gatewayPort + 100 }) + const freeApiPort = await portfinder.getPortPromise({ port: apiPort, stopPort: apiPort + 100 }) const busyApiPort = apiPort !== freeApiPort const busyGatewayPort = gatewayPort !== freeGatewayPort diff --git a/test/e2e/launch.e2e.js b/test/e2e/launch.e2e.js index bf4a51f9d..ce354bbfd 100644 --- a/test/e2e/launch.e2e.js +++ b/test/e2e/launch.e2e.js @@ -9,7 +9,7 @@ const delay = require('delay') const chai = require('chai') const dirtyChai = require('dirty-chai') const { makeRepository } = require('./utils/ipfsd') -const getPort = require('get-port') +const portfinder = require('portfinder') const expect = chai.expect chai.use(dirtyChai) @@ -23,6 +23,10 @@ function createTmpDir () { return tmp.dirSync({ unsafeCleanup: true }).name } +async function getPort () { + return portfinder.getPortPromise() +} + const timeout = process.env.CI ? 180000 : 60000 describe('Application launch', function () {