node package manager

es-lookup-scope

es-lookup-scope

Travis build status Code Climate Test Coverage Dependency Status devDependency Status

Using escope we find the scope of any estree compatible AST node.

import {parse} from 'acorn';
import lookup from 'es-lookup-scope';
import {traverse} from 'estraverse'
 
let ast = parse(`
      (function() {
        const x = 2;
        try {
          const x = 1;
          [1, 2, 3].map(x => x);
        } catch(o_O) {}
        console.log(x);
      })();
      module.exports = {
        x() {
          let y = this;
          console.log(y);
        }
      }
    `, { ecmaVersion: 6});
    
traverse(ast, {
    enter(node) {
        console.log(lookup(node));
    }
});