unist-util-modify-children
Modify direct children of a parent.
Install
npm:
npm install unist-util-modify-children
Usage
var u = require('unist-builder')
var modifyChildren = require('unist-util-modify-children')
var modify = modifyChildren(modifier)
var tree = u('root', [
u('leaf', '1'),
u('node', [u('leaf', '2')]),
u('leaf', '3')
])
modify(tree)
console.dir(tree, {depth: null})
function modifier(node, index, parent) {
if (node.type === 'node') {
parent.children.splice(index, 1, {type: 'subtree', children: node.children})
return index + 1
}
}
Yields:
{
type: 'root',
children: [
{ type: 'leaf', value: '1' },
{ type: 'subtree', children: [ { type: 'leaf', value: '2' } ] },
{ type: 'leaf', value: '3' }
]
}
API
modify = modifyChildren(modifier)
Wrap modifier to be invoked for each child in the node given to
modify.
next? = modifier(child, index, parent)
Invoked if modify is called on a parent node for each child
in parent.
Returns
number (optional) — Next position to iterate.
function modify(parent)
Invoke the bound modifier for each child in parent
(Node).
Related
unist-util-visit— Visit nodesunist-util-visit-parents— Visit nodes with ancestral informationunist-util-filter— Create a new tree with all nodes that pass a testunist-util-map— Create a new tree with all nodes mapped by a given functionunist-util-remove— Remove nodes from a tree that pass a testunist-util-select— Select nodes with CSS-like selectors
Contribute
See contributing.md in syntax-tree/.github for ways to get
started.
See support.md for ways to get help.
This project has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.