node package manager


grasp squery Build Status

A query engine for grasp - use CSS style selectors to query your JavaScript AST.

For documentation on the selector format, see the grasp page on squery.

See also the other query engine for grasp: equery.

Initially derived from esquery.


Add grasp-squery to your package.json, and then require it: var squery = require('grasp-squery);.

The squery object exposes five properties: three functions, parse, queryParsed, query, a constructor, Cache, and the version string as VERSION.

Use parse(selector) to parse a string selector into a parsed selector.

Use queryParsed(parsedSelector, ast) to query your parsed selector.

query(selector, ast) is shorthand for doing queryParsed(parse(selector), ast).

The AST must be in the Mozilla SpiderMonkey AST format - you can use acorn to parse a JavaScript file into the format.

If you are using one selector for multiple ASTs, parse it first, and then feed the parsed version to queryParsed. If you are only using the selector once, just use query.

Both queryParsed and query take an optional third parameter cache. A cache is automatically created from the AST you supply if you do not supply a cache. You can create your own cache by calling the Cache constructor with your AST.