@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
15 lines (14 loc) • 633 B
JavaScript
//#region src/routing/session-key.ts
const DEFAULT_ACCOUNT_ID = "default";
const VALID_ID_RE = /^[a-z0-9][a-z0-9_-]{0,63}$/i;
const INVALID_CHARS_RE = /[^a-z0-9_-]+/g;
const LEADING_DASH_RE = /^-+/;
const TRAILING_DASH_RE = /-+$/;
function normalizeAccountId(value) {
const trimmed = (value ?? "").trim();
if (!trimmed) return DEFAULT_ACCOUNT_ID;
if (VALID_ID_RE.test(trimmed)) return trimmed.toLowerCase();
return trimmed.toLowerCase().replace(INVALID_CHARS_RE, "-").replace(LEADING_DASH_RE, "").replace(TRAILING_DASH_RE, "").slice(0, 64) || DEFAULT_ACCOUNT_ID;
}
//#endregion
export { DEFAULT_ACCOUNT_ID, normalizeAccountId };