Novice Prime Minister

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

    1.3.0 • 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.

    • 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

    Install

    npm i unist-util-ancestor

    DownloadsWeekly Downloads

    28

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    6.47 kB

    Total Files

    5

    Last publish

    Collaborators

    • gorango