Skip to main content

resolve_package

Function resolve_package 

Source
pub fn resolve_package(
    entry: &ModulePackageEntry,
    module_name: &str,
    platform: &Platform,
    managers: &HashMap<String, &dyn PackageManager>,
) -> Result<Option<ResolvedPackage>>
Expand description

Resolve a single module package entry to a concrete (manager, name, version).

Algorithm: 0. If platforms is non-empty and current platform doesn’t match → return None (skipped)

  1. Determine candidate managers: prefer list, or [platform.native_manager()]
  2. For each candidate: a. If "script" — always available, uses the script field as installer b. Otherwise: check available + alias resolve + min-version check
  3. First satisfying candidate wins
  4. If none satisfies, return error with details