My use case: I'm building a Yeoman generator, that modifies TypeScript files; in ways similar to:
import
statementsYeoman recommends using an AST parser for this task:
The most reliable way to do so is to parse the file AST (abstract syntax tree) and edit it.
Tools like jscodeshift make this fairly straightforward for JavaScript files, but it doesn't appear to support TypeScript. Are there any similar tools to parse and modify the AST of a TypeScript file?
Does ts-simple-ast
fit your needs?
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/
It looks like jscodeshift
supports TypeScript (ts
, and tsx
) via --parser
option since v0.6.0 (https://github.com/facebook/jscodeshift/releases/tag/v0.6.0).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With