unist-util-ancestor
TypeScript icon, indicating that this package has built-in type declarations

1.4.3 • Public • Published

unist-util-ancestor

Build Coverage Types Size

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 search
  • nodesToFind (Node[]) - Array of unist nodes
  • includeNodes (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

Package Sidebar

Install

npm i unist-util-ancestor

Weekly Downloads

10

Version

1.4.3

License

MIT

Unpacked Size

7.11 kB

Total Files

5

Last publish

Collaborators

  • gorango