Socket
Socket
Sign inDemoInstall

unist-util-visit

Package Overview
Dependencies
3
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    unist-util-visit

unist utility to visit nodes


Version published
Weekly downloads
14M
increased by2.86%
Maintainers
2
Install size
60.5 kB
Created
Weekly downloads
 

Package description

What is unist-util-visit?

The unist-util-visit package is a utility for visiting nodes in a unist syntax tree. It allows for traversal of the tree and application of functions to nodes that match specified conditions. This can be useful for manipulating or inspecting the tree in various ways, such as filtering nodes, applying transformations, or extracting information.

What are unist-util-visit's main functionalities?

Visiting nodes

This feature allows you to visit all nodes in a unist syntax tree that match a specified type. The provided function is called for each matching node. This can be useful for performing operations on specific types of nodes.

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

Visiting nodes with a test function

This feature allows you to visit all nodes that pass a test implemented by a function. The test function is called with each node, and if it returns true, the node is considered a match. This allows for more complex matching conditions beyond just type.

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

Exiting early

This feature allows you to exit the traversal early by returning `visit.EXIT` from the visitor function. This can be useful for optimizing performance by avoiding unnecessary traversal once a certain condition is met.

visit(tree, 'type', (node, index, parent) => { if (node.value === 'stop') return visit.EXIT })

Other packages similar to unist-util-visit

Readme

Source

unist-util-visit

Build Coverage Downloads Size Sponsors Backers Chat

unist utility to walk the tree.

Contents

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-parents if you care about the entire stack of parents.

Install

This package is ESM only. In Node.js (version 12.20+, 14.14+, 16.0+, 18.0+), install with npm:

npm install unist-util-visit

In Deno with esm.sh:

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

In browsers with esm.sh:

<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-parents, 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 index and its parent.

Please see unist-util-visit-parents.

Types

This package is fully typed with TypeScript. It exports the additional types Test, VisitorResult, and Visitor.

It also exports the types BuildVisitor<Tree extends Node = Node, Check extends Test = string> 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.

Contribute

See contributing.md in syntax-tree/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer

Keywords

FAQs

Last updated on 21 Aug 2022

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc