Caution
This package has been migrated to JS-X-Ray workspaces
Utilities for AST (ESTree compliant)
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @nodesecure/estree-ast-utils
# or
$ yarn add @nodesecure/estree-ast-utils
import { VariableTracer } from "@nodesecure/estree-ast-utils";
const tracer = new VariableTracer().enableDefaultTracing();
const data = tracer.getDataFromIdentifier("identifier...here");
console.log(data);
arrayExpressionToString(node): IterableIterator< string >
Translate an ESTree ArrayExpression into an iterable of Literal value.
["foo", "bar"];
will return "foo"
then "bar"
.
concatBinaryExpression(node, options): IterableIterator< string >
Return all Literal part of a given Binary Expression.
"foo" + "bar";
will return "foo"
then "bar"
.
One of the options of the method is stopOnUnsupportedNode
, if true it will throw an Error if the left or right side of the Expr is not a supported type.
getCallExpressionIdentifier(node): string | null
Return the identifier name of the CallExpression (or null if there is none).
foobar();
will return "foobar"
.
getMemberExpressionIdentifier(node): IterableIterator< string >
Return the identifier name of the CallExpression (or null if there is none).
foo.bar();
will return "foo"
then "bar"
.
getVariableDeclarationIdentifiers(node): IterableIterator< string >
Get all variables identifier name.
const [foo, bar] = [1, 2];
will return "foo"
then "bar"
.
isLiteralRegex(node): boolean
Return true
if the given Node is a Literal Regex Node.
/^hello/g;
Thanks goes to these wonderful people (emoji key):
Gentilhomme 💻 🛡️ |
Kouadio Fabrice Nguessan 🚧 |
MIT