lodash-humps-ts
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

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

Package Sidebar

Install

npm i lodash-humps-ts

Weekly Downloads

1,017

Version

0.0.6

License

ISC

Unpacked Size

8.81 kB

Total Files

13

Last publish

Collaborators

  • lywzx