Spaces:
Paused
Paused
| 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 }; | |
| } | |