immutable-recursive
Extra functions for use with Immutable.js to better handle tree structures, nested data and recursive iteration.
Warning
While I anticipate this library will be very stable once release, it is completely in development / pre-alpha at this point.
Won't be long until this is ready for public though. Hold on to your hats, anything could change in the near future.
Development tasks
Function | Plan | Write | Tests | Document | Examples |
---|
deepGet | Done | Done | Done | Done | |
deepGetChildren | Done | Done | Done | Done | |
deepSet | Done | Done | Done | Done | |
deepSetChildren | Done | Done | Done | Done | |
deepUpdate | Done | Done | Done | Done | |
deepUpdateChildren | Done | Done | Done | Done | |
deepDelete | Done | Done | Done | Done | |
deepDeleteChildren | Done | Done | Done | Done | |
deepDeleteCollapse | In progress | | | | |
deepMap | Done | Done | Done | In progress | |
deepMapLeaves | Done | Done | Done | Done | |
deepMapParents | Done | Done | Done | Done | |
deepMapOutward | Done | Done | Done | Done | |
deepMapLeavesOutwards | Done | Done | Done | Done | |
deepMapParentsOutwards | Done | Done | Done | Done | |
deepReduce | Done | Done | Done | Done | |
deepReduceLeaves | Done | Done | Done | Done | |
deepReduceParents | Done | Done | Done | Done | |
deepReduceOutward | Done | Done | Done | Done | |
deepReduceLeavesOutwards | Done | Done | Done | Done | |
deepReduceParentsOutwards | Done | Done | Done | Done | |
deepFilter | Done | Done | Done | Done | |
deepFilterCollapse | In progress | | | | |
deepPick | Done | Done | Done | Done | |
deconstruct | Done | In progress | | | |
reconstruct | In progress | | | | |
asList | Done | Done | Done | Done | Done |
blankNode | Done | Done | Done | Done | |
nodePathToKeys | Done | Done | Done | Done | Done |
nodePathToKeysChildren | Done | Done | Done | Done | Done |
isLeaf | Done | Done | Done | Done | Done |
isRoot | In progress | | | | |
pick | Done | Done | Done | Done | Done |
isSiblingOf | Done | | | | |
isParentOf | Done | | | | |
isAncestorOf | Done | | | | |
getChildren | In progress | | | | |
setChildren | In progress | | | | |
updateChildren | In progress | | | | |
filterChildren | In progress | | | | |
deleteChildren | In progress | | | | |
getCommonAncestor | In progress | | | | |
Also need something to iterate starting from a child iterable with no root node
Typedef | Plan | Document | Examples |
---|
InputFunction | Done | Done | Done |
NodePath | Done | Done | Done |
ChildPath | Done | Done | Done |
mapper | Done | Done | |
updater | Done | Done | |
reducer | Done | Done | |
filter | Done | Done | |
- Show reverse() or sortBy() examples when using deeply
- Try adding @externals for JS and Immutable, try grouping under different modules
- Allow functions to be passsed into ChildPath and modify all affected library functions so they can use it
- Add a 'thinking in trees and nodes' style intro
- Add documentation about deep data manipulation pitfalls, avoiding killing children
- Add build process with Travis
- Add coverage reporting and build failing
- Add shields for tests, version numbers, coverage
- Fix table styles on index page, remove horrible purple colour