Files
openclaw/src/infra/package-tag.ts
2026-04-07 08:40:34 +01:00

25 lines
590 B
TypeScript

import { normalizeOptionalString } from "../shared/string-coerce.js";
export function normalizePackageTagInput(
value: string | undefined | null,
packageNames: readonly string[],
): string | null {
const trimmed = normalizeOptionalString(value);
if (!trimmed) {
return null;
}
for (const packageName of packageNames) {
if (trimmed === packageName) {
return null;
}
const prefix = `${packageName}@`;
if (trimmed.startsWith(prefix)) {
const tag = trimmed.slice(prefix.length).trim();
return tag ? tag : null;
}
}
return trimmed;
}