UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

161 lines (107 loc) 3.3 kB
--- title: Imports --- ## Imports Imports of a source file can be retrieved by calling: ```typescript // get them all const imports = sourceFile.getImportDeclarations(); // or get the first one that matches a condition const importWithDefaultImport = sourceFile.getImport(i => i.getDefaultImport() != null); ``` ### Add/Insert Add or insert use `insertImportDeclaration`, `insertImportDeclarations`, `addImportDeclaration`, or `addImportDeclarations`: ```typescript const importDeclaration = sourceFile.addImportDeclaration({ defaultImport: "MyClass", moduleSpecifier: "./file" }); ``` ### Remove Call `.remove()`: ```typescript importDeclaration.remove(); ``` ### Module specifier Get it: ```typescript const moduleSpecifier = importDeclaration.getModuleSpecifier(); // returns: string ``` _Example:_ For `import settings from "./settings";` would return `./settings`. Set it: ```typescript importDeclaration.setModuleSpecifier("./new-file"); ``` ### Default import Get it: ```typescript const defaultImport = importDeclaration.getDefaultImport(); // returns: Identifier | undefined ``` Set it: ```typescript importDeclaration.setDefaultImport("MyClass"); ``` #### Example Given the file: ```typescript import MyClass from "./file"; const instance = new MyClass(); ``` Doing the following: ```typescript const importDeclaration = sourceFile.getImportDeclarations()[0]; importDeclaration.setDefaultImport("NewName"); ```` Will rename the default import and all its usages: ```typescript import NewName from "./file"; const instance = new NewName(); ``` ### Namespace import Get it: ```typescript const namespaceImport = importDeclaration.getNamespaceImport(); // returns: Identifier | undefined ``` Set it: ```typescript importDeclaration.setNamespaceImport("newName"); ``` _Note:_ Setting the namespace import for an existing namespace import will rename any uses of the namespace import in the current file. ### Named imports Getting a named import: ```typescript const namedImports = importDeclaration.getNamedImports(); // returns: ImportSpecifier ``` Adding or inserting named imports can be done via the `addNamedImport`, `addNamedImports`, `insertNamedImport`, or `insertNamedImports` methods. ```typescript const namedImport = importDeclaration.addNamedImport({ name: "MyClass", alias: "MyAliasName" // alias is optional }); ``` Removing one named import: ```typescript namedImport.remove(); ``` Removing all named imports: ```typescript importDeclaration.removeNamedImports(); ``` #### Import specifier Import specifiers are the individual named imports. ##### Name ```typescript namedImport.getNameNode(); // returns: Identifier namedImport.setName("NewName"); namedImport.renameName("NewName"); ``` ##### Alias ```typescript namedImport.getAliasIdentifier(); // returns: Identifier | undefined namedImport.setAlias("NewAliasName"); ``` _Note:_ Setting the alias will rename any uses of the alias or identifier in the current file to the new value. ##### Parent import declaration ```typescript namedImport.getImportDeclaration(); // returns: ImportDeclaration ```