Module discovery

Module discovery 

Source
Expand description

Workspace discovery implementations for various package managers.

This module provides implementations of the [WorkspaceDiscovery] trait for discovering workspace configurations from:

  • package.json (npm, Bun, Yarn)
  • pnpm-workspace.yaml (pnpm)
  • Cargo.toml (Rust/Cargo)

§Usage

use cuenv_workspaces::discovery::{PackageJsonDiscovery, CargoTomlDiscovery};
use cuenv_workspaces::WorkspaceDiscovery;
use std::path::Path;

let root = Path::new(".");

// Try npm/yarn/bun workspace
if let Ok(workspace) = PackageJsonDiscovery.discover(root) {
    println!("Found {} npm members", workspace.member_count());
}

// Try cargo workspace
if let Ok(workspace) = CargoTomlDiscovery.discover(root) {
    println!("Found {} crate members", workspace.member_count());
}

Re-exports§

pub use package_json::PackageJsonDiscovery;
pub use pnpm_workspace::PnpmWorkspaceDiscovery;

Modules§

package_json
Discovery implementation for npm/Bun/Yarn workspaces via package.json.
pnpm_workspace
Discovery implementation for pnpm workspaces via pnpm-workspace.yaml.

Functions§

read_json_file
Reads and parses a JSON file.
read_toml_file
Reads and parses a TOML file.
read_yaml_file
Reads and parses a YAML file.
resolve_glob_patterns
Resolves glob patterns to find directories, handling exclusions.