GitHub - syntax-tree/unist-util-find: utility to find a node (original) (raw)
unist-util-find
unist utility to find a node.
Contents
- What is this?
- When should I use this?
- Install
- Use
- API
- Types
- Compatibility
- Security
- Related
- Contribute
- License
What is this?
This package is a utility that takes any unist (whether mdast, hast, etc) node and returns the first node that matches a given condition.
When should I use this?
This utility is the simplest way to find a single node in a tree.
For much more powerful tree walking, see unist-util-visit.
Install
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:
Use
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 } } }
API
This package exports the identifier find. There is no default export.
find(tree, condition)
Find a node in tree
matching condition
.
Parameters
tree
(Node) — tree to search incondition
(TestFn, TestObj, orTestStr) — condition used to test each node
Returns
The first node (Node) that matches condition, or undefined
if no node matches
TestFn
Find the first node for which function returns true
when passed node as argument (TypeScript type).
Parameters
node
(Node) — node to check
Returns
Whether node
matches your condition (boolean
).
TestObj
Find the first node that has matching values for all properties of object (TypeScript type).
Type
type TestObj = Record<string, unknown>;
TestStr
Find the first node with a truthy property matching string
(TypeScript type).
Type
Types
This package is fully typed with TypeScript. It exports the additional types TestFn,TestObj, and TestStr.
Compatibility
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.
Security
This project is safe.
Related
- unist-util-visit— visit nodes
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 © Richard Smith-Unna