refactor: dedupe provider registry normalizers

This commit is contained in:
Peter Steinberger
2026-04-07 09:47:02 +01:00
parent bf040219e4
commit dd3e86d35b
4 changed files with 23 additions and 32 deletions

View File

@@ -1,9 +1,14 @@
import { normalizeOptionalString } from "../shared/string-coerce.js";
export function normalizeCapabilityProviderId(providerId: string | undefined): string | undefined {
return normalizeOptionalString(providerId)?.toLowerCase();
}
export function buildCapabilityProviderMaps<T extends { id: string; aliases?: readonly string[] }>(
providers: readonly T[],
normalizeId: (providerId: string | undefined) => string | undefined = (providerId) =>
normalizeOptionalString(providerId)?.toLowerCase(),
normalizeId: (
providerId: string | undefined,
) => string | undefined = normalizeCapabilityProviderId,
): {
canonical: Map<string, T>;
aliases: Map<string, T>;