unist-util-visit

unist utility to visit nodes

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
unist-util-visit
17104.1.13 months ago7 years agoMinified + gzip package size for unist-util-visit in KB

Readme

unist-util-visit
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
unist utility to walk the tree.

Contents

*   [`visit(tree[, test], visitor[, reverse])`](#visittree-test-visitor-reverse)

What is this?

This is a very important utility for working with unist as it lets you walk the tree.

When should I use this?

You can use this utility when you want to walk the tree. You can use unist-util-visit-parentsvp if you care about the entire stack of parents.

Install

This package is ESM onlyesm. In Node.js (version 12.20+, 14.14+, 16.0+, 18.0+), install with npm:
npm install unist-util-visit

In Deno with esm.shesmsh:
import {visit} from "https://esm.sh/unist-util-visit@4"

In browsers with esm.shesmsh:
<script type="module">
  import {visit} from "https://esm.sh/unist-util-visit@4?bundle"
</script>

Use

import {u} from 'unist-builder'
import {visit} from 'unist-util-visit'

const tree = u('tree', [
  u('leaf', '1'),
  u('node', [u('leaf', '2')]),
  u('void'),
  u('leaf', '3')
])

visit(tree, 'leaf', (node) => {
  console.log(node)
})

Yields:
{type: 'leaf', value: '1'}
{type: 'leaf', value: '2'}
{type: 'leaf', value: '3'}

API

This package exports the identifiers visit, CONTINUE, SKIP, and EXIT. There is no default export.

visit(tree[, test], visitor[, reverse])

This function works exactly the same as unist-util-visit-parentsvp, but visitor has a different signature.

next? = visitor(node, index, parent)

Instead of being passed an array of ancestors, visitor is called with the node’s indexindex and its parentparent.
Please see unist-util-visit-parentsvp.

Types

This package is fully typed with TypeScript. It exports the additional types Test, VisitorResult, and Visitor.
It also exports the types `BuildVisitor` to properly type visitors from a tree and a test, from unist-util-visit-parents/complex-types.d.ts.

Compatibility

Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 12.20+, 14.14+, 16.0+, and 18.0+. Our projects sometimes work with older versions, but this is not guaranteed.

Related

— walk the tree with a stack of parents
— create a new tree with all nodes that pass a test
— create a new tree with all nodes mapped by a given function
— create a new tree by mapping (to an array) with the given function
— remove nodes from a tree that pass a test
— select nodes with CSS-like selectors

Contribute

See contributing.mdcontributing in syntax-tree/.githubhealth for ways to get started. See support.mdsupport for ways to get help.
This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MITlicense © Titus Wormerauthor