Как я могу проанализировать, изменить и восстановить AST файла TypeScript (например, jscodeshift)?
Мой пример использования: я создаю генератор Yeoman, который модифицирует файлы TypeScript; способами, похожими на:
- добавлять
import
заявления - Импорт компонентов в модуль AngularJS
Yeoman рекомендует использовать анализатор AST для этой задачи:
Самый надежный способ сделать это - проанализировать файл AST (абстрактное синтаксическое дерево) и отредактировать его.
Такие инструменты, как jscodeshift, делают это довольно простым для файлов JavaScript, но, похоже, не поддерживают TypeScript. Существуют ли аналогичные инструменты для анализа и изменения AST файла TypeScript?
1 ответ
Есть ли ts-simple-ast
соответствует вашим потребностям?
import { Project } from "ts-simple-ast";
const project = new Project();
// ...lots of code here that manipulates, copies, moves, and deletes files...
const sourceFile = project.getSourceFile("Models/Person.ts");
const importDeclaration = sourceFile.addImportDeclaration({
defaultImport: "MyClass",
moduleSpecifier: "./file"
});
// when you're all done, call this and it will save everything to the file system
project.save();
https://github.com/dsherret/ts-simple-ast
https://dsherret.github.io/ts-simple-ast/
Это выглядит как jscodeshift
поддерживает TypeScript (ts
, а также tsx
) через --parser
вариант с версии v0.6.0 (https://github.com/facebook/jscodeshift/releases/tag/v0.6.0).