Skip to content

kebabCaseKeys

Recursively transforms every key of a plain object (including keys nested inside arrays and nested objects) to kebab-case. Handles snake_case, camelCase, PascalCase, and space-separated keys. Non-plain-object values — Date, Map, Set, class instances, primitives — are left untouched, only their position is walked into. An entry whose transformed key is a prototype-polluting string (__proto__, constructor, prototype) is silently skipped, same as the rest of @helpers4/object.

Available since v3.0.3

import { kebabCaseKeys } from '@helpers4/object';
// or, from the all-in-one package (same code, one install):
import { kebabCaseKeys } from 'helpers4/object';
kebabCaseKeys<T>(value: T): T
ParameterTypeDescription
valueTThe object (or array of objects) to transform

T — A new value with every plain-object key converted to kebab-case

Convert object keys for a kebab-case config format

Section titled “Convert object keys for a kebab-case config format”

Recursively converts every key, including nested objects, to kebab-case.

kebabCaseKeys({ userName: 'Alice', homeAddress: { zipCode: '12345' } })
// => { 'user-name': 'Alice', 'home-address': { 'zip-code': '12345' } }

View source on GitHub