unist utility to find a node.
This package is a utility that takes any unist (whether mdast, hast, etc) node and returns the first node that matches a given condition.
This utility is the simplest way to find a single node in a tree.
For much more powerful tree walking, see unist-util-visit
.
This package is ESM only. In Node.js (version 16+), install with npm:
npm install unist-util-find
In Deno with esm.sh
:
import {find} from 'https://esm.sh/unist-util-find@3'
In browsers with esm.sh
:
<script type="module"> import {find} from 'https://esm.sh/unist-util-find@3?bundle' </script>
import {fromMarkdown} from 'mdast-util-from-markdown' import {find} from 'unist-util-find' const tree = fromMarkdown('Some _emphasis_, **strongness**, and `code`.') // String condition: console.log(find(tree, 'value')) // Object condition: console.log(find(tree, {value: 'emphasis'})) // Function condition: console.log( find(tree, function (node) { return node.type === 'inlineCode' }) )
Yields:
// string condition: 'value' { type: 'text', value: 'Some ', position: { start: { line: 1, column: 1, offset: 0 }, end: { line: 1, column: 6, offset: 5 } } } // object condition: { value: 'emphasis' } { type: 'text', value: 'emphasis', position: { start: { line: 1, column: 7, offset: 6 }, end: { line: 1, column: 15, offset: 14 } } } // function condition: function (node) { return node.type === 'inlineCode' } { type: 'inlineCode', value: 'code', position: { start: { line: 1, column: 38, offset: 37 }, end: { line: 1, column: 44, offset: 43 } } }
This package exports the identifier find
. There is no default export.
Find a node in tree
matching condition
.
tree
(Node
) — tree to search incondition
(TestFn
, TestObj
, or TestStr
) — condition used to test each nodeThe first node (Node
) that matches condition, or undefined
if no node matches
Find the first node for which function returns true
when passed node as argument (TypeScript type).
node
(Node
) — node to checkWhether node
matches your condition (boolean
).
Find the first node that has matching values for all properties of object (TypeScript type).
type TestObj = Record<string, unknown>;
Find the first node with a truthy property matching string
(TypeScript type).
This package is fully typed with TypeScript. It exports the additional types TestFn
, TestObj
, and TestStr
.
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-find@^3
, compatible with Node.js 16.
This project is safe.
unist-util-visit
— visit nodesSee 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.
MIT © Richard Smith-Unna
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