Files
NetMesh/components/terminalLayer/terminalFontSizeUpdate.ts

31 lines
898 B
TypeScript
Raw Permalink Normal View History

import { isSavedVaultHost } from "../../domain/ephemeralHosts";
import type { Host, TerminalSession } from "../../types";
export type TerminalFontSizeUpdateTarget =
| { kind: "none" }
| { kind: "global" }
| { kind: "session" }
| { kind: "host"; host: Host };
export function resolveTerminalFontSizeUpdateTarget({
session,
sessionHost,
rawHost,
}: {
session?: TerminalSession;
sessionHost?: Host | null;
rawHost?: Host | null;
}): TerminalFontSizeUpdateTarget {
if (session?.workspaceId || session?.ephemeralHost) return { kind: "session" };
if (!sessionHost) return { kind: "none" };
const usesGlobalFontSize =
sessionHost.protocol === "local"
|| sessionHost.id?.startsWith("local-")
|| !rawHost;
if (usesGlobalFontSize) return { kind: "global" };
if (!isSavedVaultHost(rawHost)) return { kind: "session" };
return { kind: "host", host: rawHost };
}