UNPKG

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
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>;