es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
52 lines (51 loc) • 1.54 kB
TypeScript
import { ToKebabCaseKeys } from "../types/ToKebabCaseKeys.js";
//#region src/object/toKebabCaseKeys.d.ts
/**
* Creates a new object composed of the properties with keys converted to kebab-case.
*
* This function takes an object and returns a new object that includes the same properties,
* but with all keys converted to kebab-case format.
*
* @template T - The type of object.
* @param obj - The object to convert keys from.
* @returns A new object with all keys converted to kebab-case.
*
* @example
* // Example with objects
* const obj = { userId: 1, firstName: 'John' };
* const result = toKebabCaseKeys(obj);
* // result will be { 'user-id': 1, 'first-name': 'John' }
*
* // Example with arrays of objects
* const arr = [
* { userId: 1, firstName: 'John' },
* { userId: 2, firstName: 'Jane' }
* ];
* const arrResult = toKebabCaseKeys(arr);
* // arrResult will be [{ 'user-id': 1, 'first-name': 'John' }, { 'user-id': 2, 'first-name': 'Jane' }]
*
* // Example with nested objects
* const nested = {
* userData: {
* userId: 1,
* userAddress: {
* streetName: 'Main St',
* zipCode: '12345'
* }
* }
* };
* const nestedResult = toKebabCaseKeys(nested);
* // nestedResult will be:
* // {
* // 'user-data': {
* // 'user-id': 1,
* // 'user-address': {
* // 'street-name': 'Main St',
* // 'zip-code': '12345'
* // }
* // }
* // }
*/
declare function toKebabCaseKeys<T>(obj: T): ToKebabCaseKeys<T>;
//#endregion
export { toKebabCaseKeys };