1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/main/port.ts
Alex Andreev a975e3d456 Revert "Enforce semicolons in eslint"
This reverts commit ca67caea60.
2020-11-20 07:51:43 +03:00

23 lines
699 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()
server.unref()
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);
});
server.listen({ host: "127.0.0.1", port: 0 })
})
}