QAST is designed as a foundation for writing tools that work with the TypeScript AST. It aims to provide a higher level API, query engine, node data aggregators etc.
QAST should alleviate much of the pain when working with the AST directly. It lets you work at a higher abstraction level than with the "bare metal" AST, while still making it available when necessary.
Also see additional docs
QAST is currently structured as a mono repo, using lerna with yarn workspaces
- core
- traverser
- visitor
- instrumentor
- node
- node-matcher
- node-details
- node-types
- query
- service
- utils
- loggable
- test-utils
Please help contribute to make it happen, see Contributing
See Resources for more
See Testing
We will try to make it easy to integrate other tools, so that this design is intent bases without making assumptions about underlying use or implementation.
For more see Tool integration
You should be able to use tsutils to make it easier to gather information and work with the underlying typescript AST.
We intend to extend astravel to have a similar API and design if this turns out to be as awesome as we think it could be...
Kristian Mandrup
MIT