README
unist-util-modify-children
Modify direct children of a parent.
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install unist-util-modify-children
Use
import u from 'unist-builder'
import {modifyChildren} from '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
This package exports the following identifiers: modifyChildren
.
There is no default export.
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
— Recursively walk over nodesunist-util-visit-parents
— Likevisit
, but with a stack of parentsunist-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-flatmap
— Create a new tree by mapping (to an array) with the given functionunist-util-find-after
— Find a node after another nodeunist-util-find-before
— Find a node before another nodeunist-util-find-all-after
— Find all nodes after another nodeunist-util-find-all-before
— Find all nodes before another nodeunist-util-find-all-between
— Find all nodes between two nodesunist-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, organization, or community you agree to abide by its terms.