deep-case-crafter
Version:
Transforms deeply nested object, array, Map, and Set keys between common case formats while preserving TypeScript type safety
22 lines (21 loc) • 1.18 kB
TypeScript
import { TransformOptionsInternal } from '../types/transformOptionTypes';
import { TransformObjectReturn } from '../types/transformTypes';
/**
* Transforms an object's keys to the specified case format (single level only)
* @param obj - The object to transform
* @param options - Transformation options including targetCase (required), optional sourceCase and optional preserveSpecialCharacters
* @returns A new object with transformed keys
*
* @remarks
* - Only string keys will be transformed; numeric keys and Symbol keys remain unchanged
* - When sourceCase is specified:
* - TypeScript provides precise property type information
* - Transformation is more efficient (bypasses runtime detection)
* - When sourceCase is not specified:
* - Automatic case detection is used for each key
* - Return type is Record<string, unknown> for type safety
* - The preserveSpecialCharacters option retains special characters at the beginning and end of keys
*
* @internal This function is for internal use by the library
*/
export default function transformObject<T extends object, O extends TransformOptionsInternal>(obj: T, options: O): TransformObjectReturn<T, O>;