unist-util-map
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published

    unist-util-map

    Build Coverage Downloads Size Sponsors Backers Chat

    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 imported instead of required.

    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
    • tree (Node) — Tree to map
    • callback (Function) — Function that returns a new node
    Returns

    Node — New mapped tree.

    function mapFn(node[, index, parent])

    Function called with a node to produce a new node.

    Parameters
    • node (Node) — Current node being processed
    • index (number?) — Index of node, or null
    • parent (Node?) — Parent of node, or null
    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

    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.

    License

    MIT © azu

    Install

    npm i unist-util-map

    DownloadsWeekly Downloads

    84,478

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    10.2 kB

    Total Files

    5

    Last publish

    Collaborators

    • wooorm
    • kmck