0.0.6 • Published 5 years ago

lodash-humps-ts v0.0.6

Weekly downloads
62
License
ISC
Repository
github
Last release
5 years ago

lodash-humps-ts v0.0.3

Converting object keys to camelCase. Works on deeply nested objects/arrays. Handy for converting underscore keys to camelCase. Using lodash keeps the code small and light at around 10 lines.

Install

$ npm i --save lodash-humps-ts

Usage

Converting object keys

Remove any hyphens, underscores, whitespace characters, and uppercases the first character that follows. Returns a new object. See _.camelCase() https://lodash.com/docs#camelCase and https://en.wikipedia.org/wiki/CamelCase.

import humps from 'lodash-humps-ts'

const object = { attr_one: 'foo', attr_two: 'bar', attr_three: { attr_one: 'foo' } }
humps(object) // { attrOne: 'foo', attrTwo: 'bar', attrThree: { attrOne: 'foo' } }

Arrays of objects are also converted:

const array = [{ attr_one: 'foo' }, { attr_one: 'bar' }]
humps(array) // [{ attrOne: 'foo' }, { attrOne: 'bar' }]

Custom key converter

What if you want to convert it back?!? See test/createHumps.spec.ts for an example. Open an issue if you want a proper export.

import { createHumps } from 'lodash-humps-ts'
import { snakeCase } from 'lodash'

const snakes = createHumps(snakeCase)
const object = { attrOne: 'foo', attrTwo: 'bar', attrThree: { attrOne: 'foo' } }
snakes(object) // { attr_one: 'foo', attr_two: 'bar', attr_three: { attr_one: 'foo' } }

Version 3 Changes

NOTE: Version 3.x will only work with objects created by the Object constructor. You may need to do something like const result = humps({ ...SomeOtherClass }) to get humps to process your stuff. Function properties are now kept and not converted to {}. Some might say this is a bug and others might call it a feature. Full version bump so you can have your pick.

Internally switched from using _.isObject to _.isPlainObject before converting the keys and children objects.

Prior Art

https://www.npmjs.com/package/humps