Convert an object's keys to any case
npm install changecase-objects```
$ npm install --save changecase-objects
` javascript
var changeKeys = require('changecase-objects')
changeKeys.snakeCase({ fooBar: 'baz' })
// returns { foo_bar: 'baz' }
changeKeys.snakeCase({ 'foo-bar': true, nested: { fooBaz: 'bar' }})
// returns { foo_bar: true, nested: { foo_baz: 'bar' }}
`
or with imports
` javascript
import { snakeCase } from 'changecase-objects'
snakeCase({ fooBar: 'baz' })
// returns { foo_bar: 'baz' }
snakeCase({ 'foo-bar': true, nested: { fooBaz: 'bar' }})
// returns { foo_bar: true, nested: { foo_baz: 'bar' }}
`
#### Extra Options
Every function accepts an optional options object. The following options are currently supported:
| Name | Type | Description |
|-------------|-----------------|--------------------------------------------------|
| exclude | array | Array of key values to exclude from case change. |
##### exclude
` javascript`
camelCase({ foo_bar: 'baz', 'filters[foo_bar]': 'val' }, { exclude: ['filters[foo_bar]'] })
// returns { fooBar: 'baz', 'filters[foo_bar]': 'val' }
-----------------
#### camelCase
camelCase(obj, [options]) -> Object
Converts keys to a string with the separators denoted by having the next letter capitalized.
` javascript`
camelCase({ 'key name': 'val' })
// returns { keyName: 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### CONSTANT_CASE
constantCase(obj, [options]) -> Object
Converts keys to upper case, with an underscore separator.
` javascript`
constantCase({ 'key name': 'val' })
// returns { KEY_NAME: 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### dot.case
dotCase(obj, [options]) -> Object
Converts keys to lower case, with a period separator.
` javascript`
dotCase({ 'key name': 'val' })
// returns { 'key.name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### Header-Case
headerCase(obj, [options]) -> Object
Converts keys to title case, with a dash separator.
` javascript`
headerCase({ 'key name': 'val' })
// returns { 'Key-Name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### kebab-case
kebabCase(obj, [options]) -> Object
Converts keys to lower case, with a dash separator.
` javascript`
kebabCase({ 'key name': 'val' })
// returns { 'key-name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### lower case
lowerCase(obj, [options]) -> Object
Converts keys to lower case, with a space separator.
` javascript`
lowerCase({ 'Key Name': 'val' })
// returns { 'key name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### PascalCase
pascalCase(obj, [options]) -> Object
Converts keys to camel case, with the first character also capitalized.
` javascript`
pascalCase({ 'key name': 'val' })
// returns { KeyName: 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### path/case
pathCase(obj, [options]) -> Object
Converts keys to lower case, with a slash separator.
` javascript`
pathCase({ 'key name': 'val' })
// returns { 'key/name': 'val' })
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### Sentence case
sentenceCase(obj, [options]) -> Object
Converts keys to lower case, with a space separator, with the first letter capitalized.
` javascript`
sentenceCase({ 'key name': 'val' })
// returns { 'Key name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### snake_case
snakeCase(obj, [options]) -> Object
Converts keys to lower case, with an underscore separator.
` javascript`
snakeCase({ 'key name': 'val' })
// returns { key_name: 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### Title Case
titleCase(obj, [options]) -> Object
Converts keys to lower case with the first letter of each word capitalized, with a space separator.
` javascript`
titleCase({ 'key name': 'val' })
// returns { 'Key Name': 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### UPPER CASE
upperCase(obj, [options]) -> Object
Converts keys to upper case, with a space separator.
` javascript`
upperCase({ 'key name': 'val' })
// returns { 'KEY NAME: 'val' }
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array
-----------------
#### -cUsToM-cAsE-
customCase(obj, caseFn, [options]) -> Object
Allows for custom casing rules by converting keys according to given function.
` javascriptcaseFn
customCase({ 'key name': 'val' }, key => transform(key))
// returns keys formatted by `
##### Parameters
| Name | Type | Required | Description |
|-------------|-----------------------------|----------|--------------------------------------------------|
| obj | Object or array