From 05e7025015da7974a65db7f767a870fafe218b86 Mon Sep 17 00:00:00 2001 From: Amp Date: Wed, 12 Aug 2026 06:53:05 +0000 Subject: [PATCH] refactor(infra): flatten LAN route hint resolution Amp-Thread-ID: https://ampcode.com/threads/T-019ff438-3b93-77b8-9828-1d3c586cb127 --- src/infra/advertised-lan-host.ts | 53 +++++++++++++------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/src/infra/advertised-lan-host.ts b/src/infra/advertised-lan-host.ts index ba879f2e445d..8896a0306fcd 100644 --- a/src/infra/advertised-lan-host.ts +++ b/src/infra/advertised-lan-host.ts @@ -186,41 +186,30 @@ async function resolveDefaultRouteHints(params: { runCommandWithTimeout: AdvertisedLanHostCommandRunner; timeoutMs: number; }): Promise { + let argv: string[]; + let parse: typeof parseWindowsDefaultRouteHints; if (params.platform === "win32") { - const stdout = await runRouteHintCommand( - params.runCommandWithTimeout, - [ - "powershell.exe", - "-NoProfile", - "-ExecutionPolicy", - "Bypass", - "-Command", - WINDOWS_DEFAULT_ROUTE_COMMAND, - ], - params.timeoutMs, - ); - return stdout ? parseWindowsDefaultRouteHints(stdout) : []; + argv = [ + "powershell.exe", + "-NoProfile", + "-ExecutionPolicy", + "Bypass", + "-Command", + WINDOWS_DEFAULT_ROUTE_COMMAND, + ]; + parse = parseWindowsDefaultRouteHints; + } else if (params.platform === "darwin") { + argv = ["route", "-n", "get", "default"]; + parse = parseMacOsDefaultRouteHints; + } else if (params.platform === "linux") { + argv = ["ip", "-4", "route", "show", "default"]; + parse = parseLinuxDefaultRouteHints; + } else { + return []; } - if (params.platform === "darwin") { - const stdout = await runRouteHintCommand( - params.runCommandWithTimeout, - ["route", "-n", "get", "default"], - params.timeoutMs, - ); - return stdout ? parseMacOsDefaultRouteHints(stdout) : []; - } - - if (params.platform === "linux") { - const stdout = await runRouteHintCommand( - params.runCommandWithTimeout, - ["ip", "-4", "route", "show", "default"], - params.timeoutMs, - ); - return stdout ? parseLinuxDefaultRouteHints(stdout) : []; - } - - return []; + const stdout = await runRouteHintCommand(params.runCommandWithTimeout, argv, params.timeoutMs); + return stdout ? parse(stdout) : []; } export async function resolveAdvertisedLanHostCore(