Как я могу проанализировать, изменить и восстановить 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/

https://dsherret.github.io/ts-simple-ast/setup/ast-viewers

https://dsherret.github.io/ts-simple-ast/manipulation/

Это выглядит как jscodeshift поддерживает TypeScript (ts, а также tsx) через --parserвариант с версии v0.6.0 (https://github.com/facebook/jscodeshift/releases/tag/v0.6.0).

Другие вопросы по тегам