@rstacruz/nested-hamt v1.1.2
nested-hamt
Nested JSON structures in a HAMT tree
Based off of mini-hamt, but this handles nested JSON structures. I'll explain later.
Install
npm install --save @rstacruz/nested-hamtAPI
set
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
get(tree, keypath)
Returns data from a HAMT store. If keypath is not given, it returns the entire store as a JSON object.
del
del(tree, keypath)
Deletes data from a keypath.
keys
keys(tree)
Returns the available keys for tree.
fromJS
fromJS(object)
Converts JSON object into a HAMT tree. Inverse of toJS().
toJS
toJS(tree)
Converts HAMT tree into a JSON object. Inverse of fromJS().
empty
empty
Empty data.
import { set, get, empty } from 'nested-hamt'
var tree = set(empty, 'hello', 'world')
get(tree, 'hello') // => 'world'extend
extend(tree, ...objects)
Extends HAMT tree with data from objects. Compare with Object.assign().
getType
getType(tree, keypath)
Checks for the type of data. Can return object, array, or anything typeof can return (string, number, boolean, and so on).
Thanks
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