snakecase-keys 
Convert an object's keys to snake case
Install
npm install snakecase-keys
Usage
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' } }
API
snakecaseKeys(obj, options)
-> object
obj
Required
Type: object | Array<object>
A plain object or array of plain objects to transform into snake case (keys only).
options
Optional
Type: object
deep
Type: boolean
Default: true
Enables snake-casing of keys in nested objects.
exclude
Type: Array<string | RegExp>
Default: []
An array of strings or regular expressions matching keys that will be excluded from snake-casing.
shouldRecurse(key, val)
-> boolean
Optional
Type: function
A function that determines if val
should be recursed.
Requires deep: true
.
parsingOptions
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.
snakeCase
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.
Related
License
MIT © Ben Drucker