esquery
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/esquery package

    1.4.0 • Public • Published

    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

    Install

    npm i esquery

    DownloadsWeekly Downloads

    20,822,703

    Version

    1.4.0

    License

    BSD-3-Clause

    Unpacked Size

    986 kB

    Total Files

    13

    Last publish

    Collaborators

    • jrfeenst
    • michaelficarra