unist utility to remove all nodes that pass a test from the tree.
ContentsThis is a small utility that helps you clean a tree by removing some stuff.
When should I use this?You can use this utility to remove things from a tree. This utility is very similar to unist-util-filter
, which creates a new tree. Modifying a tree like this utility unist-util-remove
does is much faster on larger documents though.
You can also walk the tree with unist-util-visit
to remove nodes. To create trees, use unist-builder
.
This package is ESM only. In Node.js (version 16+), install with npm:
npm install unist-util-remove
In Deno with esm.sh
:
import {remove} from 'https://esm.sh/unist-util-remove@4'
In browsers with esm.sh
:
<script type="module"> import {remove} from 'https://esm.sh/unist-util-remove@4?bundle' </script>Use
import {u} from 'unist-builder' import {remove} from 'unist-util-remove' const tree = u('root', [ u('leaf', '1'), u('parent', [ u('leaf', '2'), u('parent', [u('leaf', '3'), u('other', '4')]), u('parent', [u('leaf', '5')]) ]), u('leaf', '6') ]) // Remove all nodes of type `leaf`. remove(tree, 'leaf') console.dir(tree, {depth: undefined})
Yields:
{ type: 'root', children: [ { type: 'parent', children: [{type: 'parent', children: [{type: 'other', value: '4'}]}] } ] }
APIð Note: the parent of leaf
5
is also removed,options.cascade
can change that.
This package exports the identifier remove
. There is no default export.
remove(tree[, options], test)
Change the given tree
by removing all nodes that pass test
.
tree
itself is never tested. The tree is walked in preorder (NLR), visiting the node itself, then its head, etc.
tree
(Node
) â tree to changeoptions
(Options
, optional) â configurationtest
(Test
, optional) â unist-util-is
compatible testNothing (undefined
).
Options
Configuration (TypeScript type).
Fieldscascade
(boolean
, default: true
) â whether to drop parent nodes if they had children, but all their children were filtered outThis package is fully typed with TypeScript. It exports the additional type Options
.
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, unist-util-remove@^4
, compatible with Node.js 16.
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-map
â create a new tree by mapping nodesunist-util-select
â select nodes with CSS-like selectorsunist-util-visit
â walk the treeunist-builder
â create treesSee 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.
LicenseMIT © Eugene Sharygin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4