mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 05:12:43 +00:00
refactor(daemon): share runtime and service probe helpers
This commit is contained in:
24
src/infra/ports-probe.ts
Normal file
24
src/infra/ports-probe.ts
Normal 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);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user