unist utility to create a new tree by mapping all nodes with the given function.
npm:
npm install unist-util-map
var u = require('unist-builder')
var map = require('unist-util-map')
var tree = u('tree', [
u('leaf', 'leaf 1'),
u('node', [u('leaf', 'leaf 2')]),
u('void'),
u('leaf', 'leaf 3')
])
var next = map(tree, function(node) {
return node.type === 'leaf'
? Object.assign({}, node, {value: 'CHANGED'})
: node
})
console.dir(next, {depth: null})
Yields:
{
type: 'tree',
children: [
{ type: 'leaf', value: 'CHANGED' },
{ type: 'node', children: [ { type: 'leaf', value: 'CHANGED' } ] },
{ type: 'void' },
{ type: 'leaf', value: 'CHANGED' }
]
}
…note that tree
is not mutated.
Create a new tree by mapping all nodes with the given function.
Function called with a node to produce a new node.
node
(Node
) — Current node being processedindex
(number?
) — Index ofnode
, ornull
parent
(Node?
) — Parent ofnode
, ornull
Node
— Node to be used in the new tree.
Its children are not used: if the original node has children, those are mapped.
unist-util-filter
— Create a new tree with all nodes that pass the given functionunist-util-flatmap
— Create a new tree by expanding a node into manyunist-util-remove
— Remove nodes from treesunist-util-select
— Select nodes with CSS-like selectorsunist-util-visit
— Recursively walk over nodesunist-builder
— Creating trees
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.