MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / pickEphemeralPort

Function pickEphemeralPort

apps/cli/src/daemon.ts:269–291  ·  view source on GitHub ↗
(hostname: string)

Source from the content-addressed store, hash-verified

267 });
268
269const pickEphemeralPort = (hostname: string): Effect.Effect<number, Error> =>
270 Effect.tryPromise({
271 try: () =>
272 new Promise<number>((resolve, reject) => {
273 const server = createServer() as ProbeServer;
274
275 server.once("error", (error: unknown) => {
276 reject(error);
277 });
278
279 server.once("listening", () => {
280 const address = server.address();
281 const port = typeof address === "object" && address !== null ? address.port : 0;
282 server.close(() => resolve(port));
283 });
284
285 server.listen({ port: 0, host: toProbeHost(hostname) });
286 }),
287 catch: (cause) =>
288 cause instanceof Error
289 ? cause
290 : new Error(`Failed selecting ephemeral port: ${String(cause)}`),
291 });
292
293export const chooseDaemonPort = (input: {
294 preferredPort: number;

Callers 1

chooseDaemonPortFunction · 0.85

Calls 6

rejectFunction · 0.85
toProbeHostFunction · 0.85
addressMethod · 0.80
listenMethod · 0.80
closeMethod · 0.65
resolveFunction · 0.50

Tested by

no test coverage detected