--- name: retype description: Refactors TypeScript codebases with AST-aware rename, extract, and reference finding. Use for moving functions between files, renaming across codebase, or finding all usages of a symbol. --- # retype-cli TypeScript refactoring CLI built on ts-morph. AST-aware, safe refactoring. ## Commands | Command | Purpose | | ------------- | ----------------------------------------- | | `search` | Find entities (functions, classes, types) | | `rename` | Rename entity across all files | | `extract` | Move entity to different file | | `references` | Find all usages of an entity | | `unused` | Find unused exports | | `fix-imports` | Fix missing imports | ## Search ```bash # Find function by name bunx retype-cli search linearGraphQL -p ./src --list # Find exported functions only bunx retype-cli search --kind function --exported -p ./src --list # Find by regex pattern bunx retype-cli search "create.*Component" --regex -p ./src --list # Show code body bunx retype-cli search myFunction --body -p ./src ``` ## References ```bash # Find all usages of a function bunx retype-cli references linearGraphQL -p ./src --list # Show all references (not truncated) bunx retype-cli references linearGraphQL -p ./src --list --all ``` ## Rename ```bash # Rename with preview (dry run) bunx retype-cli rename oldName newName -p ./src --preview # Rename without confirmation bunx retype-cli rename oldName newName -p ./src --yes # Exact match only bunx retype-cli rename oldName newName -p ./src --exact --yes ``` ## Extract Move entity to a different file, updating all imports automatically. ```bash # Extract function to new file bunx retype-cli extract linearGraphQL ./src/api/linear.ts -p ./src --yes # Interactive extraction bunx retype-cli extract myHelper ./src/utils/helpers.ts -p ./src ``` ## Fix Imports ```bash # Find and fix missing imports bunx retype-cli fix-imports -p ./src ``` ## Unused Exports ```bash # Find unused exported entities bunx retype-cli unused -p ./src --list ``` ## Common Workflows ### Extract API to separate module ```bash # 1. Find the function bunx retype-cli search linearGraphQL -p ./src --list # 2. Check current references bunx retype-cli references linearGraphQL -p ./src --list # 3. Extract to new file (updates all imports) bunx retype-cli extract linearGraphQL ./src/api/linear.ts -p ./src --yes # 4. Verify bun run typecheck ``` ### Rename across codebase ```bash # 1. Preview changes bunx retype-cli rename createComponent createWidget -p ./src --preview # 2. Apply changes bunx retype-cli rename createComponent createWidget -p ./src --yes ``` ### Clean up unused exports ```bash # 1. Find unused bunx retype-cli unused -p ./src --list # 2. Review and remove manually ``` ## Options | Option | Description | | -------------- | ----------------------------- | | `-p, --path` | Project root path | | `-c, --config` | Path to tsconfig.json | | `--list` | Output as simple list | | `--yes` | Skip confirmation | | `--preview` | Dry run (rename only) | | `--exact` | Exact match (rename only) | | `--all` | Show all results (references) |