UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

30 lines (28 loc) 877 B
/** Normalize webhook paths into the canonical registry form used by route lookup. */ export function normalizeWebhookPath(raw) { const trimmed = raw.trim(); if (!trimmed) { return "/"; } const withSlash = trimmed.startsWith("/") ? trimmed : `/${trimmed}`; if (withSlash.length > 1 && withSlash.endsWith("/")) { return withSlash.slice(0, -1); } return withSlash; } /** Resolve the effective webhook path from explicit path, URL, or default fallback. */ export function resolveWebhookPath(params) { const trimmedPath = params.webhookPath?.trim(); if (trimmedPath) { return normalizeWebhookPath(trimmedPath); } if (params.webhookUrl?.trim()) { try { const parsed = new URL(params.webhookUrl); return normalizeWebhookPath(parsed.pathname || "/"); } catch { return null; } } return params.defaultPath ?? null; }