Skip to content

Repository files navigation

camelcase-keys

Convert object keys to camel case using camelcase

Install

npm install camelcase-keys

Usage

importcamelcaseKeysfrom'camelcase-keys';// Convert an objectcamelcaseKeys({'foo-bar': true});//=> {fooBar: true}// Convert an array of objectscamelcaseKeys([{'foo-bar': true},{'bar-foo': false}]);//=> [{fooBar: true}, {barFoo: false}]
import{parseArgs}from'node:util';importcamelcaseKeysfrom'camelcase-keys';constcommandLineArguments=parseArgs();//=> {_: [], 'foo-bar': true}camelcaseKeys(commandLineArguments);//=> {_: [], fooBar: true}

Leading _ and $ are preserved as they have semantic meaning.

camelcaseKeys({_foo_bar: true,$baz_qux: true});//=> {_fooBar: true, $bazQux: true}

API

camelcaseKeys(input, options?)

input

Type: Record<string, unknown> | ReadonlyArray<Record<string, unknown>>

A plain object or array of plain objects to camel-case.

options

Type: object

exclude

Type: Array<string | RegExp>
Default: []

Exclude keys from being camel-cased.

For correct TypeScript types when using this option with a string array, add as const to the array.

deep

Type: boolean
Default: false

Recurse nested objects and objects in arrays.

importcamelcaseKeysfrom'camelcase-keys';constobject={'foo-bar': true,nested: {unicorn_rainbow: true}};camelcaseKeys(object,{deep: true});//=> {fooBar: true, nested: {unicornRainbow: true}}camelcaseKeys(object,{deep: false});//=> {fooBar: true, nested: {unicorn_rainbow: true}}
pascalCase

Type: boolean
Default: false

Uppercase the first character: bye-byeByeBye

importcamelcaseKeysfrom'camelcase-keys';camelcaseKeys({'foo-bar': true},{pascalCase: true});//=> {FooBar: true}camelcaseKeys({'foo-bar': true},{pascalCase: false});//=> {fooBar: true}
preserveConsecutiveUppercase

Type: boolean
Default: false

Preserve consecutive uppercase characters: foo-BARFooBAR

importcamelcaseKeysfrom'camelcase-keys';camelcaseKeys({'foo-BAR': true},{preserveConsecutiveUppercase: true});//=> {fooBAR: true}camelcaseKeys({'foo-BAR': true},{preserveConsecutiveUppercase: false});//=> {fooBar: true}
stopPaths

Type: string[]
Default: []

Exclude children at the given object paths in dot-notation from being camel-cased.

For correct TypeScript types when using this option, add as const to the array.

For example, with an object like {a: {b: '🦄'}}, the object path to reach the unicorn is 'a.b'.

importcamelcaseKeysfrom'camelcase-keys';constobject={a_b: 1,a_c: {c_d: 1,c_e: {e_f: 1}}};camelcaseKeys(object,{deep: true,stopPaths: ['a_c.c_e']}),/*{	aB: 1,	aC: { cD: 1, cE: { e_f: 1 }	}}*/

When an object is inside an array, the path is specified without array indices. A stopPath will apply to all items in the array.

importcamelcaseKeysfrom'camelcase-keys';constobject={foo: [{bar: {baz_qux: 'value'}}]};camelcaseKeys(object,{deep: true,stopPaths: ['foo.bar']}),/*{	foo: [ { bar: { baz_qux: 'value' } }	]}*/

Related

About

Convert object keys to camel case

Resources

Code of conduct

Contributing

Security policy

Stars

757 stars

Watchers

7 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages