Unist utility for finding the closest common ancestor for multiple nodes. Useful for working with remark, rehype and retext.
npm install unist-util-ancestor
import { u } from 'unist-builder' import { inspect } from 'unist-util-inspect' import findAncestor from 'unist-util-ancestor' const tree = u('root', [ u('node', [ u('leaf', 'leaf 0') ]), u('node', [ u('node', [ u('leaf', 'leaf 1'), ]), u('node', [ u('leaf', 'leaf 2'), u('node', [ u('leaf', 'leaf 3'), ]) ]) ]), u('leaf', 'leaf 4') ]) const nodesToFind = [{ value: 'leaf 1' }, { value: 'leaf 2' }] console.log(inspect(findAncestor(tree, nodesToFind)))
Yields:
node[2]
├─0 node[1]
│ └─0 leaf "leaf 1"
└─1 node[2]
├─0 leaf "leaf 2"
└─1 node[1]
└─0 leaf "leaf 3"
findAncestor(tree, nodesToFind[, includeNodes])
Return the closest node that contains all nodesToFind
along with data.depth
containing the distance between the deepest node.
tree
(Node
) - Unist node to searchnodesToFind
(Node[]
) - Array of unist nodesincludeNodes
(boolean
) - Whether to include target nodes in responseRun npm test
to run tests.
Run npm run coverage
to produce a test coverage report.
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