refactor(daemon): share runtime and service probe helpers

This commit is contained in:
Peter Steinberger
2026-02-22 21:18:30 +00:00
parent e029f78447
commit 06b0a60bef
12 changed files with 241 additions and 107 deletions

24
src/infra/ports-probe.ts Normal file
View File

@@ -0,0 +1,24 @@
import net from "node:net";
export async function tryListenOnPort(params: {
port: number;
host?: string;
exclusive?: boolean;
}): Promise<void> {
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<void>((resolve, reject) => {
const tester = net
.createServer()
.once("error", (err) => reject(err))
.once("listening", () => {
tester.close(() => resolve());
})
.listen(listenOptions);
});
}