/ c4f / front / node_modules / is-reference /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]dist/5 months ago -  
[TXT]CHANGELOG.md5 months ago609  
[TXT]README.md5 months ago1.2K 
[   ]package.json5 months ago1.2K 
README.md

is-reference

Utility for determining whether an AST node is a reference.

foo is a reference in these cases:

console.log( foo );
var foo;
function foo () {}
function bar ( foo ) {}
export { foo as x };

foo is not a reference in these cases:

var obj = { foo: 1 };
console.log( obj.foo );
export { x as foo };

In all cases, foo is an Identifier node, but the two kinds must be treated differently for the purposes of scope analysis etc. (The examples are non-exhaustive.)

Installation

npm install is-reference

Usage

Example using Acorn and estree-walker:

const { parse } = require( 'acorn' );
const { walk } = require( 'estree-walker' );
const isReference = require( 'is-reference' );

const identifiers = [];
const references = [];

const ast = parse( `var a = b.c;` );

walk( ast, {
    enter ( node, parent ) {
        if ( node.type === 'Identifier' ) identifiers.push( node );
        if ( isReference( node, parent ) ) references.push( node );
    }
});

identifiers.forEach( node => console.log( node.name ) ); // a, b, c
references.forEach( node => console.log( node.name ) ); // a, b

License

MIT

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80