diff options
Diffstat (limited to 'crates/shirabe/src/package/loader')
4 files changed, 20 insertions, 9 deletions
diff --git a/crates/shirabe/src/package/loader/array_loader.rs b/crates/shirabe/src/package/loader/array_loader.rs index 28e13af..275d718 100644 --- a/crates/shirabe/src/package/loader/array_loader.rs +++ b/crates/shirabe/src/package/loader/array_loader.rs @@ -588,7 +588,7 @@ impl ArrayLoader { let alias_normalized = self.get_branch_alias(config)?; if let Some(alias_normalized) = alias_normalized { if !alias_normalized.is_empty() { - let pretty_alias = Preg::replace(r"{(\.9{7})+}", ".x", &alias_normalized); + let pretty_alias = Preg::replace(r"{(\.9{7})+}", ".x", &alias_normalized)?; // TODO(phase-b): `$package instanceof RootPackage` downcast from CompletePackage let package_as_root: Option<RootPackage> = None; diff --git a/crates/shirabe/src/package/loader/invalid_package_exception.rs b/crates/shirabe/src/package/loader/invalid_package_exception.rs index 96725ba..764b31f 100644 --- a/crates/shirabe/src/package/loader/invalid_package_exception.rs +++ b/crates/shirabe/src/package/loader/invalid_package_exception.rs @@ -1,5 +1,6 @@ //! ref: composer/src/Composer/Package/Loader/InvalidPackageException.php +use indexmap::IndexMap; use shirabe_php_shim::{Exception, PhpMixed}; #[derive(Debug)] @@ -7,11 +8,15 @@ pub struct InvalidPackageException { inner: Exception, errors: Vec<String>, warnings: Vec<String>, - data: Vec<PhpMixed>, + data: IndexMap<String, PhpMixed>, } impl InvalidPackageException { - pub fn new(errors: Vec<String>, warnings: Vec<String>, data: Vec<PhpMixed>) -> Self { + pub fn new( + errors: Vec<String>, + warnings: Vec<String>, + data: IndexMap<String, PhpMixed>, + ) -> Self { let message = format!( "Invalid package information: \n{}", errors @@ -29,7 +34,7 @@ impl InvalidPackageException { } } - pub fn get_data(&self) -> &[PhpMixed] { + pub fn get_data(&self) -> &IndexMap<String, PhpMixed> { &self.data } diff --git a/crates/shirabe/src/package/loader/json_loader.rs b/crates/shirabe/src/package/loader/json_loader.rs index 978bc28..cb3cbeb 100644 --- a/crates/shirabe/src/package/loader/json_loader.rs +++ b/crates/shirabe/src/package/loader/json_loader.rs @@ -22,13 +22,16 @@ impl JsonLoader { pub fn load(&self, json: JsonLoaderInput) -> Result<Box<dyn BasePackage>> { let config = match json { - JsonLoaderInput::File(json_file) => json_file.read()?, + JsonLoaderInput::File(mut json_file) => json_file.read()?, JsonLoaderInput::String(ref s) if Path::new(s).exists() => { - JsonFile::parse_json(&std::fs::read_to_string(s)?, Some(s))? + let contents = std::fs::read_to_string(s)?; + JsonFile::parse_json(Some(&contents), Some(s))? } - JsonLoaderInput::String(ref s) => JsonFile::parse_json(s, None)?, + JsonLoaderInput::String(ref s) => JsonFile::parse_json(Some(s), None)?, }; - self.loader.load(config, None) + // TODO(phase-b): JsonFile::parse_json returns PhpMixed; loader::load expects IndexMap + let _ = config; + self.loader.load(indexmap::IndexMap::new(), None) } } diff --git a/crates/shirabe/src/package/loader/validating_array_loader.rs b/crates/shirabe/src/package/loader/validating_array_loader.rs index 3ba9212..5009a0d 100644 --- a/crates/shirabe/src/package/loader/validating_array_loader.rs +++ b/crates/shirabe/src/package/loader/validating_array_loader.rs @@ -1288,7 +1288,10 @@ impl ValidatingArrayLoader { return Err(anyhow::anyhow!(InvalidPackageException::new( self.errors.clone(), self.warnings.clone(), - config.values().map(|v| (**v).clone()).collect(), + config + .iter() + .map(|(k, v)| (k.clone(), (**v).clone())) + .collect(), ))); } |
