Files
Moltbot/src/sessions/session-label.ts
2026-01-09 17:02:57 +01:00

21 lines
626 B
TypeScript

export const SESSION_LABEL_MAX_LENGTH = 64;
export type ParsedSessionLabel =
| { ok: true; label: string }
| { ok: false; error: string };
export function parseSessionLabel(raw: unknown): ParsedSessionLabel {
if (typeof raw !== "string") {
return { ok: false, error: "invalid label: must be a string" };
}
const trimmed = raw.trim();
if (!trimmed) return { ok: false, error: "invalid label: empty" };
if (trimmed.length > SESSION_LABEL_MAX_LENGTH) {
return {
ok: false,
error: `invalid label: too long (max ${SESSION_LABEL_MAX_LENGTH})`,
};
}
return { ok: true, label: trimmed };
}