diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-04 22:37:18 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-04 22:37:53 +0900 |
| commit | 20d665bb1247500d514f05b160d01f5f8e223a38 (patch) | |
| tree | 0d49d9f928021380b4c932f4f14272415afa9272 /crates/shirabe/src/package/root_package.rs | |
| parent | f429396f1cada5b7096d12c3cfaeea113018406c (diff) | |
| download | php-shirabe-20d665bb1247500d514f05b160d01f5f8e223a38.tar.gz php-shirabe-20d665bb1247500d514f05b160d01f5f8e223a38.tar.zst php-shirabe-20d665bb1247500d514f05b160d01f5f8e223a38.zip | |
feat(loader): wire RootPackageLoader::load end-to-end
Resolve the remaining todo!()/placeholder sites in RootPackageLoader::load
so the root package loads with real data:
- Unbox config at use sites and change load()'s parameter from
IndexMap<String, Box<PhpMixed>> to IndexMap<String, PhpMixed>, matching
ArrayLoader::load / VersionGuesser::guess_version and dropping the
redundant box/unbox round-trip at the factory call site.
- Expose replace_version through CompletePackage/RootPackage inherent
delegation and a RootPackageHandle method (PHP Package::replaceVersion,
inherited), and apply it for the auto-versioned default.
- Collect require/require-dev links via getter dispatch and build the
pretty-string map feeding extractAliases/StabilityFlags/References.
Also reconcile the package repositories type with Config: change
CompletePackageInterface::{get,set}_repositories from
Vec<IndexMap<String, PhpMixed>> to IndexMap<String, PhpMixed> (PHP's
array<int|string, mixed>), wire setRepositories(config.getRepositories()),
and dump repositories verbatim as a keyed array (matching PHP ArrayDumper)
instead of forcing a list.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/root_package.rs')
| -rw-r--r-- | crates/shirabe/src/package/root_package.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/shirabe/src/package/root_package.rs b/crates/shirabe/src/package/root_package.rs index 0fd50f1..fc04d25 100644 --- a/crates/shirabe/src/package/root_package.rs +++ b/crates/shirabe/src/package/root_package.rs @@ -39,6 +39,10 @@ impl RootPackage { aliases: Vec::new(), } } + + pub fn replace_version(&mut self, version: String, pretty_version: String) { + self.inner.replace_version(version, pretty_version); + } } impl RootPackageInterface for RootPackage { @@ -136,11 +140,11 @@ impl CompletePackageInterface for RootPackage { CompletePackageInterface::set_scripts(&mut self.inner, scripts) } - fn get_repositories(&self) -> Vec<IndexMap<String, PhpMixed>> { + fn get_repositories(&self) -> IndexMap<String, PhpMixed> { CompletePackageInterface::get_repositories(&self.inner) } - fn set_repositories(&mut self, repositories: Vec<IndexMap<String, PhpMixed>>) { + fn set_repositories(&mut self, repositories: IndexMap<String, PhpMixed>) { CompletePackageInterface::set_repositories(&mut self.inner, repositories) } |
