mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 16:11:25 +00:00
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
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 = detail.toLowerCase();
|
|
|
|
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;
|
|
}
|