thread_flow/incremental/extractors/mod.rs
1// SPDX-FileCopyrightText: 2025 Knitli Inc. <knitli@knit.li>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4//! Dependency extractors for various programming languages.
5//!
6//! Each extractor uses tree-sitter queries to parse import/dependency statements
7//! from source files and produce [`DependencyEdge`](super::DependencyEdge) values
8//! for the incremental update system.
9//!
10//! ## Supported Languages
11//!
12//! - **Go** ([`go`]): Extracts `import` statements including blocks, aliases, dot,
13//! and blank imports with go.mod module path resolution.
14//! - **Python** ([`python`]): Extracts `import` and `from...import` statements (pending implementation).
15//! - **Rust** ([`rust`]): Extracts `use` declarations and `pub use` re-exports with
16//! crate/super/self path resolution and visibility tracking.
17//! - **TypeScript/JavaScript** ([`typescript`]): Extracts ES6 imports, CommonJS requires,
18//! and export declarations with node_modules resolution.
19
20pub mod go;
21pub mod python;
22pub mod rust;
23pub mod typescript;
24
25// Re-export extractors for dependency_builder
26pub use go::GoDependencyExtractor;
27pub use python::PythonDependencyExtractor;
28pub use rust::RustDependencyExtractor;
29pub use typescript::TypeScriptDependencyExtractor;
30
31// Re-export language detector
32pub use super::dependency_builder::LanguageDetector;