Changelog โ
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.2] - 2025-06-05 โ
๐ง Fixed โ
- Documentation UI: Fixed TypeScript word-break issue in hero text and titles
- Date Consistency: Updated all 2024 dates to current 2025 dates across documentation
- GitHub Actions: Fixed pnpm compatibility issues with dependency caching
- CI/CD Pipeline: Resolved "Dependencies lock file is not found" errors
๐ Documentation โ
- Custom Theme: Added VitePress custom theme with improved typography
- CSS Improvements: Enhanced text rendering and mobile responsiveness
- Changelog Updates: Synchronized all timestamps and examples with current date
๐ CI/CD โ
- pnpm Integration: Migrated from manual pnpm installation to
pnpm/action-setup@v2 - Cache Optimization: Proper pnpm lock file detection and caching
- Build Stability: All workflows now run successfully with consistent pnpm version
[0.1.1] - 2025-06-05 โ
๐ First Stable Release โ
This is the first stable release of Importy, a powerful CLI tool for analyzing JavaScript/TypeScript imports from libraries.
โจ Added โ
- Core functionality: Analyze imports from specific libraries in JavaScript/TypeScript codebases
- CLI interface: Command-line tool with comprehensive options
-d, --dir <directory>: Directory to scan (required)-l, --lib <library>: Library name to match (required)-o, --output <file>: Output results to JSON file-v, --verbose: Enable verbose logging-i, --include <pattern>: Include files matching glob pattern-e, --exclude <pattern>: Exclude files matching glob pattern-c, --concurrency <number>: Control parallel processing
- Multi-format support: Works with
.js,.ts,.jsx,.tsxfiles - Advanced parsing: Handles complex TypeScript and JSX syntax using Babel
- Performance optimizations:
- Parallel file processing with configurable concurrency
- Batch processing for large codebases
- Progress reporting for long-running operations
- Import type detection: Supports named, default, and namespace imports
- Subpath imports: Handles library subpath imports (e.g.,
library/subpath) - Comprehensive output: JSON format with detailed statistics and file locations
- Error handling: Graceful handling of parsing errors and invalid files
- Pattern matching: Custom glob pattern implementation for file filtering
๐ ๏ธ Technical Features โ
- Modern Node.js: Uses ES modules and
node:protocol for built-in imports - TypeScript support: Full TypeScript compatibility with proper type definitions
- Code quality: Integrated with Biome for formatting and linting
- Testing: Comprehensive test suite with Vitest
- Build system: Optimized build process with tsup
๐ฆ Dependencies โ
@babel/parser: JavaScript/TypeScript parsing@babel/traverse: AST traversalcommander: CLI argument parsing
๐งช Development Dependencies โ
@biomejs/biome: Code formatting and lintingtypescript: TypeScript supportvitest: Testing frameworktsup: Build tool
๐ Documentation โ
- Comprehensive README with usage examples
- API documentation for programmatic usage
- Contributing guidelines
- Troubleshooting guide
๐ฏ Use Cases โ
- Dependency analysis: Identify which components from a library are being used
- Migration planning: Understand usage patterns before library upgrades
- Code auditing: Find all occurrences of specific imported components
- Bundle optimization: Identify unused imports for tree-shaking
- Refactoring: Locate all usages of specific library components
๐ง Example Usage โ
# Basic usage
importy --dir ./src --lib react
# Advanced filtering
importy --dir ./src --lib @mui/material --include "**/*.tsx" --exclude "**/*.test.*"
# Export to file
importy --dir ./src --lib lodash --output imports.json --verbose๐ Output Format โ
{
"summary": {
"library": "react",
"componentsFound": 5,
"totalImports": 12,
"filesScanned": 42
},
"components": {
"useState": ["src/components/Counter.tsx"],
"useEffect": ["src/components/Dashboard.tsx"]
}
}๐ Release Notes โ
This release marks the first stable version of Importy, providing a solid foundation for analyzing JavaScript/TypeScript imports. The tool has been thoroughly tested and is ready for production use.
๐ Migration Guide โ
Since this is the first stable release, there are no breaking changes to migrate from. Users upgrading from pre-release versions (0.0.x) should note:
- All CLI options remain the same
- Output format is now standardized and stable
- Node.js 18+ is now required (previously worked with Node.js 14+)
๐ค Contributing โ
We welcome contributions! Please see our contributing guidelines in the repository.
๐ Known Issues โ
- Complex TypeScript decorators may occasionally cause parsing warnings (files are skipped gracefully)
- Very large codebases (>10,000 files) may benefit from increased concurrency settings
๐ Performance โ
- Typical performance: ~100-500 files per second depending on file size and complexity
- Memory usage: ~50-100MB for most projects
- Recommended concurrency: 2-8 threads (automatically detected based on CPU)
Full Changelog: https://github.com/tvshevchuk/Importy/commits/v0.1.0
