UNPKG

change-object-case

Version:
79 lines (56 loc) 2.82 kB
# change-object-case [![Build Status](https://travis-ci.org/claudetech/js-change-object-case.svg?branch=master)](https://travis-ci.org/claudetech/js-change-object-case) [![Coverage Status](https://coveralls.io/repos/claudetech/js-change-object-case/badge.svg?branch=master&service=github)](https://coveralls.io/github/claudetech/js-change-object-case?branch=master) A library based on [change-case](https://github.com/blakeembrey/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 ```javascript 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.: ```javascript 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`: ```javascript 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](https://github.com/blakeembrey/change-case) documentation for all the available methods, and suffix with `Keys` or `Array` where you need. ## License MIT