Spaces:
Paused
Paused
| import { colorize, isRich as isRichTerminal, theme } from "../../terminal/theme.js"; | |
| export const isRich = (opts?: { json?: boolean; plain?: boolean }) => | |
| Boolean(isRichTerminal() && !opts?.json && !opts?.plain); | |
| export const pad = (value: string, size: number) => value.padEnd(size); | |
| export const formatKey = (key: string, rich: boolean) => colorize(rich, theme.warn, key); | |
| export const formatValue = (value: string, rich: boolean) => colorize(rich, theme.info, value); | |
| export const formatKeyValue = ( | |
| key: string, | |
| value: string, | |
| rich: boolean, | |
| valueColor: (value: string) => string = theme.info, | |
| ) => `${formatKey(key, rich)}=${colorize(rich, valueColor, value)}`; | |
| export const formatSeparator = (rich: boolean) => colorize(rich, theme.muted, " | "); | |
| export const formatTag = (tag: string, rich: boolean) => { | |
| if (!rich) { | |
| return tag; | |
| } | |
| if (tag === "default") { | |
| return theme.success(tag); | |
| } | |
| if (tag === "image") { | |
| return theme.accentBright(tag); | |
| } | |
| if (tag === "configured") { | |
| return theme.accent(tag); | |
| } | |
| if (tag === "missing") { | |
| return theme.error(tag); | |
| } | |
| if (tag.startsWith("fallback#")) { | |
| return theme.warn(tag); | |
| } | |
| if (tag.startsWith("img-fallback#")) { | |
| return theme.warn(tag); | |
| } | |
| if (tag.startsWith("alias:")) { | |
| return theme.accentDim(tag); | |
| } | |
| return theme.muted(tag); | |
| }; | |
| export const truncate = (value: string, max: number) => { | |
| if (value.length <= max) { | |
| return value; | |
| } | |
| if (max <= 3) { | |
| return value.slice(0, max); | |
| } | |
| return `${value.slice(0, max - 3)}...`; | |
| }; | |
| export const maskApiKey = (value: string): string => { | |
| const trimmed = value.trim(); | |
| if (!trimmed) { | |
| return "missing"; | |
| } | |
| if (trimmed.length <= 16) { | |
| return trimmed; | |
| } | |
| return `${trimmed.slice(0, 8)}...${trimmed.slice(-8)}`; | |
| }; | |