返回 Skill 列表
extension
分类: 开发与工程无需 API Key

retype

通过AST感知的重命名、提取和引用查找来重构TypeScript代码库。可用于在文件间移动函数、跨代码库重命名或查找符号的所有使用情况。

person作者: jakexiaohubgithub

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

# 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

# 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

# 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.

# 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

# Find and fix missing imports
bunx retype-cli fix-imports -p ./src

Unused Exports

# Find unused exported entities
bunx retype-cli unused -p ./src --list

Common Workflows

Extract API to separate module

# 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

# 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

# 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) |

vs ast-grep

| Task | retype-cli | ast-grep | | -------------------- | ---------- | --------- | | Rename symbol | ✅ Best | ⚠️ Manual | | Extract to file | ✅ Best | ❌ No | | Update imports | ✅ Auto | ⚠️ Manual | | Find references | ✅ Best | ✅ Good | | Pattern-based search | ⚠️ Limited | ✅ Best | | Multi-language | ❌ TS only | ✅ Many | | Complex rewrites | ❌ No | ✅ Best |

Use retype-cli for: TypeScript refactoring (rename, move, extract) Use ast-grep for: Pattern matching, multi-language, complex rewrites