Package Exports
- codeinsights
- codeinsights/bin/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (codeinsights) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Code Analysis Tools
A suite of tools for analyzing and improving codebase quality.
Features
- Import Analysis: Find unused imports in JavaScript and TypeScript files
- Codebase Analysis: Analyze code structure, documentation quality, and identify redundant patterns
- Complexity Analysis: Identify complex code and suggest refactoring opportunities
Directory Structure
scripts/
├── config/ # Shared configuration
│ └── analysis_config.js # Configuration management
│
├── utils/ # Shared utilities
│ ├── file_utils.js # File finding utilities
│ ├── code_analysis.js # Code pattern analysis utilities
│ ├── code_preprocessor.js # Code preprocessing utilities
│ ├── report_generator.js # Report generation utilities
│ └── index.js # Entry point for all utilities
│
├── analyze_all.js # Main entry point for running all analyses
├── analyze_codebase.js # Codebase structure analysis
├── check_imports.js # Import usage analysis
└── refactor_complexity.js # Code complexity analysis and refactoring suggestions
Usage
Installation
npm install
Running Analysis
Run comprehensive analysis:
npm run analyze
Or run individual checks:
# Check for unused imports
npm run check-imports
# Analyze codebase structure
npm run analyze-codebase
# Analyze code complexity
npm run analyze-complexity
Command Line Options
All scripts support the following options:
--exclude-dirs
: Comma-separated list of directories to exclude (default: node_modules,.git)--extensions
: Comma-separated list of file extensions to analyze (default: .js,.ts,.jsx,.tsx)--reports-dir
: Directory to save reports (default: reports)
Complexity analysis also supports:
--complexity-threshold
: Cyclomatic complexity threshold (default: 10)--max-function-length
: Maximum function length in statements (default: 30)
Reports
All reports are saved to the reports
directory as JSON files:
unused_imports_report.json
: List of unused importscodebase_analysis_report.json
: Codebase structure analysisrefactoring_suggestions.json
: Complexity analysis and refactoring suggestions
Architecture
The codebase follows these architectural principles:
- Modularity: All functionality is split into small, focused modules
- DRY (Don't Repeat Yourself): Common functionality is extracted into shared utilities
- Configuration Management: Centralized configuration with sensible defaults
- Standardized Reporting: Consistent report generation and formatting
CodeStats
A concise code analysis CLI tool that helps you improve your codebase by analyzing:
- Code Complexity: Find complex functions and code patterns
- Documentation: Check JSDoc completeness
- Redundant Patterns: Identify duplicated code
- Unused Imports: Find unused imports in your code
Installation
# Global installation
npm install -g codestats
# Or run with npx
npx codestats
Usage
# Analyze the current project directory
codestats
# Analyze a specific directory
codestats -d ./my-project
# Specify extensions to analyze
codestats -e .js,.ts,.jsx,.tsx
# Exclude specific directories
codestats -x node_modules,.git,dist,build
# Quiet mode (minimal output)
codestats -q
# Help
codestats --help
Features
Comprehensive CLI Output
- Color-coded summary for quick assessment
- Detailed analysis showing specific issues
- Actionable recommendations based on findings
- No external reports - everything happens in your terminal
- Fast analysis with minimal dependencies
Comprehensive Analysis
- Function complexity scoring
- Documentation completeness checking
- Redundant code pattern detection
- Unused import identification
Example Output
═════════════════════════════════════
📊 CODEBASE ANALYSIS SUMMARY
═════════════════════════════════════
Files Analyzed: 42
Average Complexity: 5.3
Complex Functions: 8/127
Documentation: 62.5%
Undocumented Functions: 24
Redundant Patterns: 6
Potential LOC Savings: 83
Unused Imports: 12
═════════════════════════════════════
🔥 MOST COMPLEX FUNCTIONS:
1. processData in main.js:127 [18]
2. renderComponent in component.js:48 [16]
3. calculateTotals in utils.js:92 [14]
4. validateInput in validators.js:35 [13]
5. parseConfig in config.js:65 [12]
📁 MOST COMPLEX FILES:
1. main.js - 12.5 avg complexity (8 functions)
2. validators.js - 9.3 avg complexity (5 functions)
3. utils.js - 7.8 avg complexity (12 functions)
📝 UNDOCUMENTED FUNCTIONS:
1. formatData in formatter.js:25
2. validateInput in validator.js:42
3. parseConfig in config.js:18
... and 21 more
🔄 REDUNDANT CODE PATTERNS:
1. utility pattern appears 5 times (41 lines savable)
Snippet: function formatDate(date) { return date.toISOString().split('T')[0]; }
Appears in:
- utils.js:45
- helpers.js:23
- formatter.js:12
2. operation pattern appears 3 times (24 lines savable)
Snippet: data.filter(item => item.active).map(item => item.value).reduce((a, b) => a + b, 0)
Appears in:
- main.js:89
- reports.js:56
- dashboard.js:102
📦 UNUSED IMPORTS:
main.js:
- fs (line 3)
- path (line 4)
utils.js:
- moment (line 2)
... and 9 more
💡 RECOMMENDATIONS:
• Refactor complex functions to improve maintainability
• Improve documentation coverage with JSDoc comments
• Extract repeated patterns into shared utilities
• Remove unused imports to clean up code
Project Structure
bin/
└── index.js # CLI entry point
lib/
├── analyzer.js # Main analysis orchestration
├── core.js # Core analysis functions
└── utils/ # Utility functions
├── complexity.js # Complexity calculation
└── parser.js # Code parsing utilities
License
MIT