import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js" ;
import { theme } from "./theme.js" ;
export function styleHealthChannelLine(line: string, rich: boolean ): string {
if (!rich) {
return line;
}
const colon = line.indexOf(":" );
if (colon === -1 ) {
return line;
}
const label = line.slice(0 , colon + 1 );
const detail = line.slice(colon + 1 ).trimStart();
const normalized = normalizeLowercaseStringOrEmpty(detail);
const applyPrefix = (prefix: string, color: (value: string) => string) =>
`${label} ${color(detail.slice(0 , prefix.length))}${detail.slice(prefix.length)}`;
if (normalized.startsWith("failed" )) {
return applyPrefix("failed" , theme.error);
}
if (normalized.startsWith("ok" )) {
return applyPrefix("ok" , theme.success);
}
if (normalized.startsWith("linked" )) {
return applyPrefix("linked" , theme.success);
}
if (normalized.startsWith("configured" )) {
return applyPrefix("configured" , theme.success);
}
if (normalized.startsWith("not linked" )) {
return applyPrefix("not linked" , theme.warn);
}
if (normalized.startsWith("not configured" )) {
return applyPrefix("not configured" , theme.muted);
}
if (normalized.startsWith("unknown" )) {
return applyPrefix("unknown" , theme.warn);
}
return line;
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-05-26)
¤
*© Formatika GbR, Deutschland