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