import type { NevoProps, NevoPropsAdapted } from "../types";
import { capitalize } from "./capitalize.js";
/**
* Normalizes the provided `props` from the provided `propertyName`.
*
* @example
* ```tsx
*
* ```
*
* @param props Propertyes according to the Nevo pattern.
* @param propertyName Name of the value property.
* @returns
*/
export function normalize(
props: NevoPropsAdapted,
propertyName: K,
): NevoProps {
const capitalizedPropertyName = capitalize(propertyName);
return {
error: props[`${propertyName}Error`],
name: props[`${propertyName}Name`],
onChange: props[`onChange${capitalizedPropertyName}`],
onChangeError: props[`onChange${capitalizedPropertyName}Error`],
value: props[propertyName],
} as NevoProps;
}