refactor(commands): dedupe gateway self presence picker

This commit is contained in:
Peter Steinberger
2026-02-15 04:04:33 +00:00
parent ab45b409b8
commit 3effffb491
4 changed files with 31 additions and 64 deletions

View File

@@ -1,4 +1,5 @@
import type { loadConfig } from "../config/config.js";
export { pickGatewaySelfPresence } from "./gateway-presence.js";
export function resolveGatewayProbeAuth(cfg: ReturnType<typeof loadConfig>): {
token?: string;
@@ -25,25 +26,3 @@ export function resolveGatewayProbeAuth(cfg: ReturnType<typeof loadConfig>): {
: undefined);
return { token, password };
}
export function pickGatewaySelfPresence(presence: unknown): {
host?: string;
ip?: string;
version?: string;
platform?: string;
} | null {
if (!Array.isArray(presence)) {
return null;
}
const entries = presence as Array<Record<string, unknown>>;
const self = entries.find((e) => e.mode === "gateway" && e.reason === "self") ?? null;
if (!self) {
return null;
}
return {
host: typeof self.host === "string" ? self.host : undefined,
ip: typeof self.ip === "string" ? self.ip : undefined,
version: typeof self.version === "string" ? self.version : undefined,
platform: typeof self.platform === "string" ? self.platform : undefined,
};
}