Convert relative imports to TypeScript path aliases automatically, based on your tsconfig.json configuration.
- ๐ฏ Zero configuration - Reads path aliases directly from
tsconfig.json - ๐ CLI tool - Easy to integrate into your workflow
- ๐ฆ Programmatic API - Use it in your own tools
- ๐ Type-safe - Full TypeScript support
- ๐๏ธ Clean architecture - Well-structured and maintainable code
npm install --save-dev @frantisekstanko/tsconfig-alias-converterConvert imports in specific files:
npx tsconfig-alias-converter src/**/*.tsSpecify a custom tsconfig path:
npx tsconfig-alias-converter src/**/*.ts --tsconfig=./tsconfig.build.jsonimport { TsconfigAliasConverter } from '@frantisekstanko/tsconfig-alias-converter'
const result = TsconfigAliasConverter.processFiles(
['src/file1.ts', 'src/file2.ts'],
'./tsconfig.json',
)
console.log(`Modified ${result.modifiedCount} of ${result.totalCount} files`)Use individual components for more control:
import {
TsconfigReader,
ImportRewriter,
FileProcessor,
} from '@frantisekstanko/tsconfig-alias-converter'
const aliasConfigs = TsconfigReader.readAliasConfigurations('./tsconfig.json')
const rewriter = new ImportRewriter(aliasConfigs)
const processor = new FileProcessor(rewriter)
const wasModified = processor.processFile('./src/example.ts')Given a tsconfig.json with path aliases:
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"],
"@tests/*": ["tests/*"]
}
}
}The tool will convert relative imports:
import { helper } from '../../../utils/helper.js'
import { config } from '../../config.js'To alias imports:
import { helper } from '@/utils/helper.js'
import { config } from '@/config.js'{
"scripts": {
"fix-imports": "tsconfig-alias-converter src/**/*.ts tests/**/*.ts"
}
}npx husky add .husky/pre-commit "npm run fix-imports"{
"lint-staged": {
"*.ts": ["tsconfig-alias-converter"]
}
}Process multiple files and convert their imports.
filePaths: Array of file paths to processtsconfigPath: Optional path to tsconfig.json (defaults to./tsconfig.json)- Returns:
{ modifiedCount: number, totalCount: number }
Read and parse path alias configurations from tsconfig.json.
tsconfigPath: Path to tsconfig.json- Returns:
AliasConfiguration[]
Rewrite imports in file content.
const rewriter = new ImportRewriter(aliasConfigurations)
const { modified, content } = rewriter.rewriteImportsInFile(
filePath,
fileContent,
)Process files on disk.
const processor = new FileProcessor(importRewriter)
const wasModified = processor.processFile(filePath)- Node.js >= 20.0.0
- npm >= 10.0.0
MIT ยฉ Frantisek Stanko