aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/diagnose.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-10 01:18:44 +0900
committernsfisis <nsfisis@gmail.com>2026-05-10 01:18:44 +0900
commit4caf72463de598ea9b6454f3b7b7332dd0071318 (patch)
tree62f99c8a48e5b21d75ab70bfd374eb67215542c9 /crates/mozart/src/commands/diagnose.rs
parent8cc1ba8a02c0318b65658f1634de378c780392b9 (diff)
downloadphp-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.rs7
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") {