24 lines
661 B
TypeScript
24 lines
661 B
TypeScript
import { getProvider } from '../config/providers.js';
|
|
import { NormalizationError } from '../config/normalizers.js';
|
|
import type { NormalizedDelivery, ProviderSlug } from '../types/integration.js';
|
|
|
|
export { NormalizationError };
|
|
|
|
export const normalize = (
|
|
provider: ProviderSlug,
|
|
payload: unknown
|
|
): NormalizedDelivery => {
|
|
const normalizer = getProvider(provider).normalize;
|
|
|
|
if (!normalizer) {
|
|
throw new NormalizationError(
|
|
`No normalizer registered for provider "${provider}"`
|
|
);
|
|
}
|
|
|
|
return normalizer(payload);
|
|
};
|
|
|
|
export const hasNormalizer = (provider: ProviderSlug): boolean =>
|
|
getProvider(provider).normalize !== undefined;
|