mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 23:40:45 +00:00
32 lines
817 B
TypeScript
32 lines
817 B
TypeScript
export function normalizeWebhookPath(raw: string): string {
|
|
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;
|
|
}
|
|
|
|
export function resolveWebhookPath(params: {
|
|
webhookPath?: string;
|
|
webhookUrl?: string;
|
|
defaultPath?: string | null;
|
|
}): string | null {
|
|
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;
|
|
}
|