Look up the scoop of an estree compatible node
npm install es-lookup-scope
yarn add es-lookup-scope
pnpm add es-lookup-scope
bun add es-lookup-scope
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)); } });