itcast 6e512b8ce6 aaaa 10 mēneši atpakaļ
..
dist 6e512b8ce6 aaaa 10 mēneši atpakaļ
node_modules 6e512b8ce6 aaaa 10 mēneši atpakaļ
README.md 6e512b8ce6 aaaa 10 mēneši atpakaļ
license.txt 6e512b8ce6 aaaa 10 mēneši atpakaļ
package.json 6e512b8ce6 aaaa 10 mēneši atpakaļ
parser.js 6e512b8ce6 aaaa 10 mēneši atpakaļ

README.md

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), :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