1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/main/port.ts
Roman 40da87c0ef port.ts refactoring
Signed-off-by: Roman <ixrock@gmail.com>
2020-07-12 10:40:37 +03:00

21 lines
659 B
TypeScript

import net, { AddressInfo } from "net"
import logger from "./logger"
// todo: check https://github.com/http-party/node-portfinder ?
export async function getFreePort(): Promise<number> {
logger.debug("Lookup new free port..");
return new Promise((resolve, reject) => {
const server = net.createServer().unref().listen({ port: 0 });
server.on("listening", () => {
const port = (server.address() as AddressInfo).port
server.close(() => resolve(port));
logger.debug(`New port found: ${port}`);
});
server.on("error", error => {
logger.error(`Can't resolve new port: "${error}"`);
reject(error);
});
})
}