import net from "node:net"; export async function tryListenOnPort(params: { port: number; host?: string; exclusive?: boolean; }): Promise { const listenOptions: net.ListenOptions = { port: params.port }; if (params.host) { listenOptions.host = params.host; } if (typeof params.exclusive === "boolean") { listenOptions.exclusive = params.exclusive; } await new Promise((resolve, reject) => { const tester = net .createServer() .once("error", (err) => reject(err)) .once("listening", () => { tester.close(() => resolve()); }) .listen(listenOptions); }); }