Wrapper around the popular Icepick library providing a FP contract.
Install using
npm install @hon2a/icepick-fp
Import using
import { assocIn, dissocIn/*, ...*/ } from '@hon2a/icepick-fp'
// or individually:
import assocIn from '@hon2a/icepick-fp/assocIn'
Wrappers are provided just for the most often used Icepick transforms for now:
assocIn
(and setIn
alias), getIn
, updateIn
, assign
, and merge
. They're
enhanced with lodash.topath
to accept String
paths:
getIn('a.b[0].c')({ a: { b: [{ c: 42 }] } })
// => 42
The freeze
and thaw
helpers are also re-exported.
Additionally, there's a dissocIn
transform (deletes just the leaf property)
dissocIn('a.b.c')({ a: { b: { c: 42 } } })
// => { a: { b: {} } }
and a generic reduce
helper
reduce(
(val, idx) => setIn(val, idx),
{}
)(['a', 'b', 'c'])
// => { a: 1, b: 2, c: 3 }
Install dependencies using:
npm install
After you modify sources, run the following (or set up your IDE to do it for you):
- format the code using
npm run format
- lint it using
npm run lint
- test it using
npm test
and fix the errors, if there are any.
Publishing is done in two steps:
- Create a new version tag and push it to the repository:
npm version <patch|minor|major> git push --follow-tags
- Build and publish the new version as a npm package:
npm publish --access public