https://github.com/bendrucker/snakecase-keys
Convert an object's keys to snake case
https://github.com/bendrucker/snakecase-keys
Last synced: about 1 year ago
JSON representation
Convert an object's keys to snake case
- Host: GitHub
- URL: https://github.com/bendrucker/snakecase-keys
- Owner: bendrucker
- License: mit
- Created: 2015-11-26T16:36:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-04-09T13:34:59.000Z (over 1 year ago)
- Last Synced: 2025-04-10T08:14:06.028Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 115 KB
- Stars: 187
- Watchers: 2
- Forks: 34
- Open Issues: 6
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# snakecase-keys [](https://github.com/bendrucker/snakecase-keys/actions?query=workflow%3Atests)
> Convert an object's keys to snake case
## Install
```
$ npm install --save snakecase-keys
```
## Usage
```js
var snakecaseKeys = require('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`.
## Related
* [camelcase-keys](https://github.com/sindresorhus/camelcase-keys)
* [kebabcase-keys](https://github.com/mattiloh/kebabcase-keys)
## License
MIT © [Ben Drucker](http://bendrucker.me)