Lens app source code (#119)

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen authored and GitHub committed 2020-03-15 09:52:02 +02:00
1 parent 936cbd53d4
commit 1d0815abd2
797 files changed
+73714 -215

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
import logger from "./logger"
import { createServer } from "net"
// Adapted from https://gist.github.com/mikeal/1840641#gistcomment-2896667
function checkPort(port: number) {
const server = createServer()
server.unref()
return new Promise((resolve, reject) =>
server
.on('error', error => reject(error))
.on('listening', () => server.close(() => resolve(port)))
.listen({host: "127.0.0.1", port: port}))
}
export async function getFreePort(firstPort: number, lastPort: number): Promise<number> {
let port = firstPort
while(true) {
try {
logger.debug("Checking port " + port + " availability ...")
await checkPort(port)
return(port)
} catch(error) {
if(++port > lastPort) throw("Could not find a free port")
}
}
}