import camelcase from 'camelcase'; export type UncontrolledKey = `default${Capitalize}`; export function getUncontrolledKey(key: T): UncontrolledKey { return camelcase(`default_${key}`) as UncontrolledKey; } export function makeUncontrolledKeyMap(keys: T) { return keys.reduce((acc, key) => ({ ...acc, [getUncontrolledKey(key)]: key }), {}) as { [key in typeof keys[number] as UncontrolledKey]: key; }; }