JavaScript
Need help with esquery?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
estools

Description

ECMAScript AST query library.

475 Stars 63 Forks Other 119 Commits 26 Opened issues

Services available

Need anything else?

ESQuery is a library for querying the AST output by Esprima for patterns of syntax using a CSS style selector system. Check out the demo:

demo

The following selectors are supported: * AST node type:

ForStatement
* wildcard:
*
* attribute existence:
[attr]
* attribute value:
[attr="foo"]
or
[attr=123]
* attribute regex:
[attr=/foo.*/]
or (with flags)
[attr=/foo.*/is]
* attribute conditions:
[attr!="foo"]
,
[attr>2]
,
[attr<3]
,
[attr>=2]
, or
[attr<=3]
* nested attribute:
[attr.level2="foo"]
* field:
FunctionDeclaration > Identifier.id
* First or last child:
:first-child
or
:last-child
* nth-child (no ax+b support):
:nth-child(2)
* nth-last-child (no ax+b support):
:nth-last-child(1)
* descendant:
ancestor descendant
* child:
parent > child
* following sibling:
node ~ sibling
* adjacent sibling:
node + adjacent
* negation:
:not(ForStatement)
* has:
:has(ForStatement)
* matches-any:
:matches([attr] > :first-child, :last-child)
* subject indicator:
!IfStatement > [name="foo"]
* class of AST node:
:statement
,
:expression
,
:declaration
,
:function
, or
:pattern

Build Status

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.