Skip to content

Add JavaScript/TypeScript dependency analyzer#159

Merged
tnm merged 4 commits into
mainfrom
add-javascript-dependency-analyzer
Dec 8, 2025
Merged

Add JavaScript/TypeScript dependency analyzer#159
tnm merged 4 commits into
mainfrom
add-javascript-dependency-analyzer

Conversation

@tnm

@tnm tnm commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

Summary

  • Add new JavaScriptDependencyAnalyzer for analyzing JS/TS codebases
  • Support ESM (import), CommonJS (require), and dynamic imports
  • Handle scoped packages (@org/pkg), Node.js built-ins, relative imports
  • Add generic get_dependencies() method to base class for consistent API across all analyzers
  • Update CLI to support --language javascript and --language typescript

Changes

  • src/kit/dependency_analyzer/javascript_dependency_analyzer.py - new analyzer (~830 lines)
  • src/kit/dependency_analyzer/dependency_analyzer.py - add abstract get_dependencies() and get_dependents() methods
  • src/kit/cli.py - add JS/TS to supported languages, simplify module analysis to use generic method
  • docs/src/content/docs/api/dependency-analyzer.mdx - document Go and JavaScript analyzers
  • tests/test_javascript_dependency_analyzer.py - 19 new tests
  • tests/perf/test_dependency_perf.py - add JS benchmarks

Performance

~8ms for 100 modules (comparable to Python/Go analyzers)

Test plan

  • All 19 JavaScript analyzer tests pass
  • All 27 CLI dependency tests pass
  • All existing analyzer tests pass (Python, Go, Terraform)
  • Lint passes

tnm added 4 commits December 8, 2025 14:56
- New JavaScriptDependencyAnalyzer supporting ESM and CommonJS imports
- Handles scoped packages (@org/pkg), Node.js built-ins, dynamic imports
- Add generic get_dependencies() method to base class for consistent API
- Update CLI to support javascript/typescript languages
- Add comprehensive tests (19 new tests) and perf benchmarks
- Update docs with Go and JavaScript analyzer documentation
@tnm tnm merged commit 2f3ccdb into main Dec 8, 2025
2 checks passed
tnm added a commit that referenced this pull request Dec 9, 2025
Add entries for:
- MultiRepo multi-repository analysis (#164)
- Rust dependency analyzer (#163)
- JavaScript/TypeScript dependency analyzer (#159)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant