unist utility to find nodes between two nodes.
npm i -S unist-util-find-all-between
const between = require('unist-util-find-all-between') const u = require('unist-builder') const parent = u('tree', [ u('leaf', 'leaf 1'), u('node', [u('leaf', 'leaf 2'), u('leaf', 'leaf 3')]), u('leaf', 'leaf 4'), u('node', [u('leaf', 'leaf 5')]), u('leaf', 'leaf 6'), u('void'), u('leaf', 'leaf 7') ]) const result = between(parent, 0, 4, 'leaf') console.log(result)
Yields:
[ { type: 'leaf', value: 'leaf 4' } ]
You can also pass a node in as start
and/or end
. For example given the tree above,
// ... const start = { type: 'leaf', value: 'leaf 4' } const end = { type: 'leaf', value: 'leaf 6' } const result = between(parent, start, end, 'node') console.dir(result, {depth: null})
Yields:
[ { type: 'node', children: [ { type: 'leaf', value: 'leaf 5' } ] } ]
between(parent, start, end[, test])
Find all child nodes of parent
, that pass test
between but not including start
and end
.
Type: Node
Parent node to search through.
Type: Node
| index
Child of parent
node. Can be an actual node or the index of a child node. If a node is given, unist-util-find is used to find the node.
Type: Node
| index
Child of parent
node. Can be an actual node or the index of a child node. If a node is given, unist-util-find is used to find the node.
Type: Function
| String
| Object
| Array
Test to find nodes. Uses unist-util-is to check.
PRs accepted and greatly appreciated.
MIT © Paul Zimmer
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