Convert an object's keys to snake case
npm install snakecase-keys
import snakecaseKeys from 'snakecase-keys'
snakecaseKeys({ fooBar: 'baz' })
//=> { foo_bar: 'baz' }
snakecaseKeys({ 'foo-bar': true, nested: { fooBaz: 'bar' } })
//=> { foo_bar: true, nested: { foo_baz: 'bar' } }
Required
Type: object | Array<object>
A plain object or array of plain objects to transform into snake case (keys only).
Optional
Type: object
Type: boolean
Default: true
Enables snake-casing of keys in nested objects.
Type: Array<string | RegExp>
Default: []
An array of strings or regular expressions matching keys that will be excluded from snake-casing.
Optional
Type: function
A function that determines if val
should be recursed.
Requires deep: true
.
Type: object
Default: {}
Options object passed to the built-in snakeCase
function from change-case
. Available options include:
split
: Custom function to split strings into wordslocale
: Locale for case conversionseparateNumbers
: Whether to separate numbers (deprecated, usesplitSeparateNumbers
)delimiter
: Custom delimiter between wordsprefixCharacters
: Characters to preserve at startsuffixCharacters
: Characters to preserve at end
See change-case
for full documentation.
Optional
Type: (key: string) => string
Custom function to convert a key to snake case. Use this to fully override the default behavior of the library and convert keys according to your own conventions. When provided, the return type will be a generic Record<string, unknown>
, since specific keys cannot be inferred from the custom function.
MIT © Ben Drucker