README
unist-util-map
unist utility to create a new tree by mapping all nodes with the given function.
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-map
Use
import u from 'unist-builder'
import {map} from '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.
API
This package exports the following identifiers: map
.
There is no default export.
map(tree, mapFn)
Create a new tree by mapping all nodes with the given function.
Parameters
Returns
function mapFn(node[, index, parent])
Function called with a node to produce a new node.
Parameters
node
(Node
) — Current node being processedindex
(number?
) — Index ofnode
, ornull
parent
(Node?
) — Parent ofnode
, ornull
Returns
Node
— Node to be used in the new tree.
Its children are not used: if the original node has children, those are mapped.
Related
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
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.