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

About the developer

estools
525 Stars 71 Forks Other 123 Commits 24 Opened issues

Description

ECMAScript AST query library.

Services available

!
?

Need anything else?

Contributors list

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.