refactor(sessions): add sessions.resolve + label helper (#570)

This commit is contained in:
Peter Steinberger
2026-01-09 16:59:54 +01:00
parent d099dabf37
commit c892fd174e
10 changed files with 446 additions and 83 deletions

View File

@@ -0,0 +1,20 @@
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 };
}