chore: migrate to oxlint and oxfmt
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
This commit is contained in:
@@ -89,10 +89,7 @@ function parseDigTxt(stdout: string): string[] {
|
||||
if (!line) continue;
|
||||
const matches = Array.from(line.matchAll(/"([^"]*)"/g), (m) => m[1] ?? "");
|
||||
for (const m of matches) {
|
||||
const unescaped = m
|
||||
.replaceAll("\\\\", "\\")
|
||||
.replaceAll('\\"', '"')
|
||||
.replaceAll("\\n", "\n");
|
||||
const unescaped = m.replaceAll("\\\\", "\\").replaceAll('\\"', '"').replaceAll("\\n", "\n");
|
||||
tokens.push(unescaped);
|
||||
}
|
||||
}
|
||||
@@ -176,10 +173,7 @@ function parseDnsSdBrowse(stdout: string): string[] {
|
||||
return Array.from(instances.values());
|
||||
}
|
||||
|
||||
function parseDnsSdResolve(
|
||||
stdout: string,
|
||||
instanceName: string,
|
||||
): GatewayBonjourBeacon | null {
|
||||
function parseDnsSdResolve(stdout: string, instanceName: string): GatewayBonjourBeacon | null {
|
||||
const decodedInstanceName = decodeDnsSdEscapes(instanceName);
|
||||
const beacon: GatewayBonjourBeacon = { instanceName: decodedInstanceName };
|
||||
let txt: Record<string, string> = {};
|
||||
@@ -228,10 +222,9 @@ async function discoverViaDnsSd(
|
||||
const instances = parseDnsSdBrowse(browse.stdout);
|
||||
const results: GatewayBonjourBeacon[] = [];
|
||||
for (const instance of instances) {
|
||||
const resolved = await run(
|
||||
["dns-sd", "-L", instance, "_clawdbot-bridge._tcp", domain],
|
||||
{ timeoutMs },
|
||||
);
|
||||
const resolved = await run(["dns-sd", "-L", instance, "_clawdbot-bridge._tcp", domain], {
|
||||
timeoutMs,
|
||||
});
|
||||
const parsed = parseDnsSdResolve(resolved.stdout, instance);
|
||||
if (parsed) results.push({ ...parsed, domain });
|
||||
}
|
||||
@@ -247,10 +240,7 @@ async function discoverWideAreaViaTailnetDns(
|
||||
const startedAt = Date.now();
|
||||
const remainingMs = () => timeoutMs - (Date.now() - startedAt);
|
||||
|
||||
const tailscaleCandidates = [
|
||||
"tailscale",
|
||||
"/Applications/Tailscale.app/Contents/MacOS/Tailscale",
|
||||
];
|
||||
const tailscaleCandidates = ["tailscale", "/Applications/Tailscale.app/Contents/MacOS/Tailscale"];
|
||||
let ips: string[] = [];
|
||||
for (const candidate of tailscaleCandidates) {
|
||||
try {
|
||||
@@ -301,9 +291,7 @@ async function discoverWideAreaViaTailnetDns(
|
||||
}
|
||||
};
|
||||
|
||||
await Promise.all(
|
||||
Array.from({ length: Math.min(concurrency, ips.length) }, () => worker()),
|
||||
);
|
||||
await Promise.all(Array.from({ length: Math.min(concurrency, ips.length) }, () => worker()));
|
||||
|
||||
if (!nameserver || ptrs.length === 0) return [];
|
||||
if (remainingMs() <= 0) return [];
|
||||
@@ -317,10 +305,9 @@ async function discoverWideAreaViaTailnetDns(
|
||||
if (!ptrName) continue;
|
||||
const instanceName = ptrName.replace(/\.?_clawdbot-bridge\._tcp\..*$/, "");
|
||||
|
||||
const srv = await run(
|
||||
["dig", "+short", "+time=1", "+tries=1", nameserverArg, ptrName, "SRV"],
|
||||
{ timeoutMs: Math.max(1, Math.min(350, budget)) },
|
||||
).catch(() => null);
|
||||
const srv = await run(["dig", "+short", "+time=1", "+tries=1", nameserverArg, ptrName, "SRV"], {
|
||||
timeoutMs: Math.max(1, Math.min(350, budget)),
|
||||
}).catch(() => null);
|
||||
const srvParsed = srv ? parseDigSrv(srv.stdout) : null;
|
||||
if (!srvParsed) continue;
|
||||
|
||||
@@ -336,10 +323,9 @@ async function discoverWideAreaViaTailnetDns(
|
||||
continue;
|
||||
}
|
||||
|
||||
const txt = await run(
|
||||
["dig", "+short", "+time=1", "+tries=1", nameserverArg, ptrName, "TXT"],
|
||||
{ timeoutMs: Math.max(1, Math.min(350, txtBudget)) },
|
||||
).catch(() => null);
|
||||
const txt = await run(["dig", "+short", "+time=1", "+tries=1", nameserverArg, ptrName, "TXT"], {
|
||||
timeoutMs: Math.max(1, Math.min(350, txtBudget)),
|
||||
}).catch(() => null);
|
||||
const txtTokens = txt ? parseDigTxt(txt.stdout) : [];
|
||||
const txtMap = txtTokens.length > 0 ? parseTxtTokens(txtTokens) : {};
|
||||
|
||||
@@ -449,18 +435,12 @@ export async function discoverGatewayBeacons(
|
||||
try {
|
||||
if (platform === "darwin") {
|
||||
const perDomain = await Promise.allSettled(
|
||||
domains.map(
|
||||
async (domain) => await discoverViaDnsSd(domain, timeoutMs, run),
|
||||
),
|
||||
);
|
||||
const discovered = perDomain.flatMap((r) =>
|
||||
r.status === "fulfilled" ? r.value : [],
|
||||
domains.map(async (domain) => await discoverViaDnsSd(domain, timeoutMs, run)),
|
||||
);
|
||||
const discovered = perDomain.flatMap((r) => (r.status === "fulfilled" ? r.value : []));
|
||||
|
||||
const wantsWideArea = domains.includes(WIDE_AREA_DISCOVERY_DOMAIN);
|
||||
const hasWideArea = discovered.some(
|
||||
(b) => b.domain === WIDE_AREA_DISCOVERY_DOMAIN,
|
||||
);
|
||||
const hasWideArea = discovered.some((b) => b.domain === WIDE_AREA_DISCOVERY_DOMAIN);
|
||||
|
||||
if (wantsWideArea && !hasWideArea) {
|
||||
const fallback = await discoverWideAreaViaTailnetDns(
|
||||
@@ -475,13 +455,9 @@ export async function discoverGatewayBeacons(
|
||||
}
|
||||
if (platform === "linux") {
|
||||
const perDomain = await Promise.allSettled(
|
||||
domains.map(
|
||||
async (domain) => await discoverViaAvahi(domain, timeoutMs, run),
|
||||
),
|
||||
);
|
||||
return perDomain.flatMap((r) =>
|
||||
r.status === "fulfilled" ? r.value : [],
|
||||
domains.map(async (domain) => await discoverViaAvahi(domain, timeoutMs, run)),
|
||||
);
|
||||
return perDomain.flatMap((r) => (r.status === "fulfilled" ? r.value : []));
|
||||
}
|
||||
} catch {
|
||||
return [];
|
||||
|
||||
Reference in New Issue
Block a user