change-object-case
v0.2.1
Published
Change case of object and arrays
Downloads
21,614
Readme
change-object-case
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
.
Installation
You can get the package with npm
$ npm install --save change-object-case
or with bower
$ bower install --save change-object-case
Usage
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.
Key collision
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
Available methods
See the change-case documentation
for all the available methods, and suffix with Keys
or Array
where you need.
License
MIT