如何在 TypeScript 中生成和操作 JavaScript ESTree AST?

Iva*_*mko 5 javascript compiler-construction code-generation abstract-syntax-tree typescript

有一个 ESTree 规范描述了 JavaScript AST 格式,该格式在多个库中用于 JS 代码转换(重构、转译、缩小等)。

是否有任何具有 API 的工具/库专注于从头开始(而不是从现有的 JS 代码)生成ESTree AST 并对其进行操作?最好在 TypeScript 中获得 ESTree 节点静态类型的优势。