Utility to find nodes between two nodes
npm install unist-util-find-all-between

unist utility to find nodes between two nodes.
``sh`
npm i -S unist-util-find-all-between
`js
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:
`js`
[ { type: 'leaf', value: 'leaf 4' } ]
You can also pass a node in as start and/or end. For example given the tree above,
`js
// ...
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:
`js`
[ { type: 'node',
children: [ { type: 'leaf', value: 'leaf 5' } ] } ]
Find all child nodes of parent, that pass test between but not including start and end.
#### parentNode
Type:
Parent node to search through.
#### startNode
Type: | 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.
#### endNode
Type: | 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.
#### test?Function
Type: | String | Object | Array
Test to find nodes. Uses unist-util-is to check.
- unist-util-find-all-before
- unist-util-find-all-after
- unist-util-find
- unist-util-is`
PRs accepted and greatly appreciated.
MIT © Paul Zimmer