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 | In progress | In progress | |
deepMapLeaves | Done | Done | In progress | Done | |
deepMapParents | Done | Done | In progress | Done | |
deepMapOutward | Done | Done | In progress | Done | |
deepMapParentsOutward | Done | | | | |
deepReduce | In progress | | | | |
deepFilter | Done | Done | In progress | Done | |
deepFilterCollapse | In progress | | | | |
deepPick | Done | Done | Done | Done | |
deepSortBy | Done | In progress | | | |
deconstruct | Done | In progress | | | |
reconstruct | In progress | | | | |
asList | Done | Done | Done | Done | Done |
blankNode | Done | Done | Done | | |
nodePathToKeys | Done | Done | Done | Done | Done |
nodePathToKeysChildren | Done | Done | Done | Done | Done |
isLeaf | Done | Done | Done | Done | Done |
pick | Done | Done | Done | Done | Done |
isSiblingOf | Done | | | | |
isParentOf | Done | | | | |
isAncestorOf | Done | | | | |
getCommonAncestor | | | | | |
Typedef | Plan | Document | Examples |
---|
InputFunction | Done | Done | Done |
NodePath | Done | Done | Done |
ChildPath | Done | Done | Done |
mapper | Done | Done | |
updater | Done | In progress | |
reducer | Done | In progress | |
filter | Done | In progress | |
- Reconsider paramaters passed to mappers / updaters etc. and which children, parents or ancestors should be accessible
- Test mapper iteration order
- Test mapper / filter / reducer argument lists
- 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, limitation of child-collection-less nodes
- 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