Allow accessing object with snake_case property names using camelCase property names
One example is whenever you'd like to seamlessly destructure or access an API request or response that are described in snake_case, by using camelCase for having a consistent code
Basically camelHumps utilizes NodeJS Proxy class and doesn't deep-clone the original object as other similar packages do.
Which results in
✅ No overhead of deep-cloning objects
✅ Minimal effect on memory footprint
✅ Applied only to fields that have being accessed
✅ Supports both snake_case and kebab-case
✅ Can mutate the original object 😱
npm i camel-humps
- kebab (false) - given object properties are in kebeb-case
const camelHumps = require('camelHumps');
const snakeObj = camelHumps(obj); // for snake_case
const kebabObj = camelHumps(obj, {kebeb: true}); // for kebab-case
const body = fetchData('/313');
console.info(body);
// result: {
// customer_details: { first_name: 'Jon', last_name: 'Stark' },
// birth_place: 'Tower of Joy' }
const camelBody = camelHumps(body);
const { characterDetails } = camelBody;
console.info(characterDetails);
// result: { first_name: 'Jon', last_name: 'Stark' }
const { firstName, lastName } = characterDetails;
console.info({ firstName, lastName });
// result: { first_name: 'Jon', last_name: 'Stark' }
camelBody.characterDetails.firstName = 'Arya';
camelBody.birthPlace = 'Winterfel';
console.info(camelBody);
// result: {
// characterDetails: { first_name: 'Arya', last_name: 'Stark' },
// birthPlace: 'Winterfel' }