A library based on change-case to change object keys case.
The library reexports all the methods of change-case so that it can be used as a drop-in replacement.
Each function of change-case has an equivalent with the suffix Keys
for object keys and Array
to map on each object in an array.
So for example, from the function camel
will be created camelKeys
and camelArray
.
You can get the package with npm
$ npm install --save change-object-case
or with bower
$ bower install --save change-object-case
var changeCase = require('change-object-case');
changeCase.camelKeys({foo_bar: {bar_baz: [{baz_qux: 1}]}});
// {fooBar: {bar_baz: [{baz_qux: 1}]}}
changeCase.camelKeys({foo_bar: {bar_baz: [{baz_qux: 1}]}}, {recursive: true});
// {fooBar: {barBaz: [{baz_qux: 1}]}}
changeCase.camelKeys({foo_bar: {bar_baz: [{baz_qux: 1}]}}, {recursive: true, arrayRecursive: true});
// {fooBar: {barBaz: [{bazQux: 1}]}}
changeCase.camelArray([{foo_bar: 1}, 2]);
// [{fooBar: 1}, 2]
changeCase.snakeKeys({fooBar: 1});
// {foo_bar: 1}
If you don't know the type of your data beforehand, there's also methods that will take arbitrary data, e.g.:
changeCase.toCamel(['string', 1.2, {foo_bar: {bar_baz: [{baz_qux: 1}]}}], {recursive: true, arrayRecursive: true});
By default, recursion is turned off, and you have to explictly pass {recursive: true}
to get objects processed recursively and {arrayRecursive: true}
to get arrays transformed.
You can set these values globally by changing changeCase.options
:
var changeCase = require('change-object-case');
changeCase.options = {recursive: true, arrayRecursive: true};
changeCase.camelKeys({foo_bar: {bar_baz: [{baz_qux: 1}]}});
// {fooBar: {barBaz: [{bazQux: 1}]}}
You can pass {exclude: array[string]}
to exclude keys from the transformation.
When converting case, some keys can possibliy collide.
By default, the key is overriden, but you can choose to raise an error
in such a case by passing: {throwOnDuplicate: true}
.
changeCase.camelKeys({a_b1: 1, a_b_1: 2}, {throwOnDuplicate: true});
// Error: duplicated key aB1
See the change-case documentation
for all the available methods, and suffix with Keys
or Array
where you need.
MIT