TypeScript Refactoring Skill
This skill guides the use of three TypeScript refactoring tools that automate common code reorganization tasks using ts-morph.
When to Use
- User wants to move a TypeScript file to a new location
- User wants to extract a symbol (class, function, interface, etc.) to a different file
- User wants to rename a symbol across the entire codebase
- User is reorganizing code structure and needs import updates handled automatically
Available Operations
1. Move File (npm run move-file)
Moves a TypeScript file to a new location and updates all import references.
npm run move-file <source> <destination>
Example:
npm run move-file src/game/Player.ts src/game/entities/Player.ts
2. Move Symbol (npm run move-symbol)
Moves a symbol from one file to another, updating imports and copying dependencies.
npm run move-symbol <sourceFile> <symbolName> <destinationFile>
Supported symbols: classes, functions, variables, interfaces, enums, type aliases
Example:
npm run move-symbol src/game/Player.ts PlayerState src/game/state/PlayerState.ts
3. Rename Symbol (npm run rename-symbol)
Renames a symbol and updates all references across the codebase.
npm run rename-symbol <file> <oldName> <newName>
Supported symbols: classes, functions, variables, interfaces, enums, type aliases
Example:
npm run rename-symbol src/game/Player.ts Player GamePlayer
Process
- Identify the operation type based on what the user wants to do
- Determine the arguments needed for the command
- Run the appropriate npm script with the correct arguments
- Verify the changes by checking that TypeScript compiles without errors
Common Patterns
- Extracting a class to its own file: Use
move-symbolto move the class, which will create the destination file if needed - Reorganizing into subdirectories: Use
move-fileto relocate files while keeping imports valid - Renaming for consistency: Use
rename-symbolto update names throughout the codebase