2.2.0 • Published 10 years ago

estools v2.2.0

Weekly downloads
9
License
MIT
Repository
github
Last release
10 years ago

estools Build Status Coverage Status

Estools provides a set of utility functions to traverse, filter and map esprima ASTs.

npm install estools --save

var estools = require('estools')

API

traverse(ast, visitor)

Traverses all tree nodes of an AST and calls visitor functions passing the AST node.

ast is the result of esprima.parse, visitor may be a function or a visitor object.

The visitor object may define the following functions

enter(node, parent)

Called when entering a node. The current node and parent node are passed as parameter

Example

traverse(ast, {
  enter : function(node, parent) {
    console.log(node.type);  // Print the node type to std out
  }
});

leave(node, parent)

Called when leaving a node. The current node and parent node are passed as parameter

Example

traverse(ast, {
  leave : function(node, parent) {
    console.log(node.type);  // Print the node type to std out
  }
});

visit(node, parent, next)

Called after enter and before leave. The current node and a parent node are passed as parameter. Additionally a function next is passed. The visit function is responsible to call next to visit child nodes. To skip child nodes just omit the call to visit.

Example

traverse(ast, {
  visit : function(node, parent, next) {
    next();
  }
});

Example skipping nodes traverse(ast, { visit : function(node, parent, next) { if (node.type != 'FunctionExpression') { // Skip child nodes of function expressions next(); } } });

filter(ast, filterObj)

Filters AST nodes and returns matching AST nodes as a flat list.

map(ast, mappingFunction)

Maps ASTs and nodes to a normalized tree with node having child nodes stored in a nodes field array.

2.2.0

10 years ago

2.1.0

10 years ago

2.0.0

10 years ago

1.0.3

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.1.0

11 years ago