Package Exports
- unist-util-map
- unist-util-map/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (unist-util-map) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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.