diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-10 01:18:44 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-10 01:18:44 +0900 |
| commit | 4caf72463de598ea9b6454f3b7b7332dd0071318 (patch) | |
| tree | 62f99c8a48e5b21d75ab70bfd374eb67215542c9 /crates/mozart/src/commands/diagnose.rs | |
| parent | 8cc1ba8a02c0318b65658f1634de378c780392b9 (diff) | |
| download | php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.tar.gz php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.tar.zst php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.zip | |
refactor(package): port RootPackageLoader into RootPackageData::from_raw
Mirrors Composer\Package\Loader\RootPackageLoader::load(): converts the
parsed RawPackageData into fully typed RootPackageData with Link objects,
defaulted fields, and trait-based accessors. Composer::package() now
returns RootPackageData instead of RawPackageData, eliminating the
pre-normalised JSON workaround noted in the previous comment.
Diffstat (limited to 'crates/mozart/src/commands/diagnose.rs')
| -rw-r--r-- | crates/mozart/src/commands/diagnose.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/mozart/src/commands/diagnose.rs b/crates/mozart/src/commands/diagnose.rs index 17a8b78..2e171e5 100644 --- a/crates/mozart/src/commands/diagnose.rs +++ b/crates/mozart/src/commands/diagnose.rs @@ -8,6 +8,7 @@ use mozart_core::console::Console; use mozart_core::console_writeln; use mozart_core::factory::create_config; use mozart_core::http::HttpDownloader; +use mozart_core::package::CompletePackage; use std::borrow::Cow; use std::path::Path; @@ -430,11 +431,11 @@ pub async fn execute( // Step 13: every additional `composer`-type repo. if let Some(composer) = &composer { - for repo in composer.package().repositories.iter() { - if repo.repo_type != "composer" { + for repo in composer.package().repositories().iter() { + if repo.get("type").and_then(|v| v.as_str()) != Some("composer") { continue; } - let Some(url) = repo.url.as_deref() else { + let Some(url) = repo.get("url").and_then(|v| v.as_str()) else { continue; }; if !url.starts_with("http") { |
