Wondering what’s next for npm?Check out our public roadmap! »

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

    3.0.0 • Public • Published

    unist-util-remove

    Build Coverage Downloads Size Sponsors Backers Chat

    unist utility to modify the given tree by removing all nodes that pass the given test.

    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-remove

    Use

    import {u} from 'unist-builder'
    import {remove} from 'unist-util-remove'
    
    var tree = u('root', [
      u('leaf', '1'),
      u('node', [
        u('leaf', '2'),
        u('node', [u('leaf', '3'), u('other', '4')]),
        u('node', [u('leaf', '5')])
      ]),
      u('leaf', '6')
    ])
    
    // Remove all nodes of type `leaf`.
    remove(tree, 'leaf')
    
    console.dir(tree, {depth: null})

    Yields: (note the parent of 5 is also removed, due to options.cascade)

    {
      type: 'root',
      children: [
        {
          type: 'node',
          children: [{type: 'node', children: [{type: 'other', value: '4'}]}]
        }
      ]
    }

    API

    This package exports the following identifiers: remove. There is no default export.

    remove(tree[, options], test)

    Mutate the given tree by removing all nodes that pass test. The tree is walked in preorder (NLR), visiting the node itself, then its head, etc.

    Parameters
    • tree (Node?) — Tree to filter
    • options.cascade (boolean, default: true) — Whether to drop parent nodes if they had children, but all their children were filtered out
    • test (Test) — is-compatible test (such as a type)
    Returns

    Node? — The given tree with nodes for which test passed removed. null is returned if tree itself didn’t pass the test, or is cascaded away.

    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, organisation, or community you agree to abide by its terms.

    License

    MIT © Eugene Sharygin

    Install

    npm i unist-util-remove

    DownloadsWeekly Downloads

    1,724,402

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    11.6 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar