unist-util-ancestor
 
 
 
Unist utility for finding the closest common ancestor for multiple nodes. Useful for working with remark, rehype and retext.
Install
npm install unist-util-ancestor
Use
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"
API
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 response
Test
Run npm test to run tests.
Run npm run coverage to produce a test coverage report.
License
MIT © Goran Spasojevic