$ npm install @rstacruz/nested-hamtNested JSON structures in a HAMT tree
Based off of mini-hamt, but this handles nested JSON structures. I'll explain later.
npm install --save @rstacruz/nested-hamt
set(tree, keypath, value)
Sets data into a HAMT store.
import { set, get, empty } from 'nested-hamt'
var data = set(empty, 'user', { name: 'John' })
get(data, 'user.name') // => 'John'
The keypaths can be given as an array or a dot-separated string. This applies to get() and del() as well.
// Both are equivalent
var data = set(empty, 'user.name', 'John')
var data = set(empty, ['user', 'name'], 'John')
get(tree, keypath)
Returns data from a HAMT store. If keypath is not given, it returns the entire store as a JSON object.
del(tree, keypath)
Deletes data from a keypath.
keys(tree)
Returns the available keys for tree.
fromJS(object)
Converts JSON object into a HAMT tree. Inverse of toJS().
toJS(tree)
Converts HAMT tree into a JSON object. Inverse of fromJS().
empty
Empty data.
import { set, get, empty } from 'nested-hamt'
var tree = set(empty, 'hello', 'world')
get(tree, 'hello') // => 'world'
extend(tree, ...objects)
Extends HAMT tree with data from objects. Compare with Object.assign().
getType(tree, keypath)
Checks for the type of data. Can return object, array, or anything typeof can return (string, number, boolean, and so on).
nested-hamt © 2016+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz