export type CamelCase = S extends `${infer T}_${infer U}` ? `${T}${Capitalize>}` : S; export type CamelCaseKeys = T extends object ? T extends (infer U)[] ? U extends object ? { [K in keyof U as CamelCase]: CamelCaseKeys; }[] : T : { [K in keyof T as CamelCase]: CamelCaseKeys; } : T;