Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

typhonjs-ast-walker

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typhonjs-ast-walker

Provides a simple Javascript AST traversal utility that traverses all nodes / children regardless of type.

  • 0.2.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

typhonjs-ast-walker

NPM Documentation Code Style License Gitter

Build Status Coverage Dependency Status

Provides a simple Javascript AST traversal utility that traverses all nodes / children regardless of type.

A single method traverse takes an AST object or array of nodes and a callback object which may contain two methods enterNode and exitNode which are invoked with the current node and the parent node respectively when entering and exiting a given node during traversal.

enterNode may return a array of strings which provide a set of children keys to ignore or null to skip traversing children keys entirely.

To install typhonjs-ast-walker provide this entry in package.json:

{
  ...
  "dependencies": {
    "typhonjs-ast-walker": "^0.2.0"
  }
}

A simple example follows:

import walker from 'typhonjs-ast-walker';

const ast = .... // An AST tree.

walker.traverse(ast,
{
   enterNode: (node, parent) =>
   {
      console.log(`walker - enterNode: ${node.type}`);

      // Optional return statement to ignore specific children keys.
      // return node.type === 'ClassBody' ? ['body'] : undefined;

      // Optional return statement to ignore specific children keys or skip traversal entirely.
      // return node.type === 'ClassBody' ? null : undefined;
   },
   
   exitNode: (node, parent) =>
   {
      console.log(`walker - exitNode: ${node.type}`);
   }
});
 

Support for typhonjs-plugin-manager is also available and when loading typhonjs-ast-walker as a plugin it will automatically register event bindings on the plugin eventbus with these event categories:

ast:walker:traverse - invokes traverse of the default walker.

Example typhonjs-plugin-manager usage:

import PluginManager    from 'typhonjs-plugin-manager';
import eventbus         from 'backbone-esnext-eventbus';

const pluginManager = new PluginManager({ eventbus });

pluginManager.add({ name: typhonjs-ast-walker });

// This will automatically wire up typhonjs-ast-walker to the eventbus. 

eventbus.trigger('ast:walker:traverse, ast, 
{
   enterNode: (node, parent) =>
   {
      console.log(`walker - enterNode: ${node.type}`);
   },
   
   exitNode: (node, parent) =>
   {
      console.log(`walker - exitNode: ${node.type}`);
   }
});

Keywords

FAQs

Package last updated on 10 Mar 2017

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc