diff options
Diffstat (limited to 'test_util/src')
-rw-r--r-- | test_util/src/npm.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/test_util/src/npm.rs b/test_util/src/npm.rs index fad59e3b8..6e393d835 100644 --- a/test_util/src/npm.rs +++ b/test_util/src/npm.rs @@ -71,6 +71,7 @@ fn get_npm_package(package_name: &str) -> Result<Option<CustomNpmPackage>> { // read all the package's versions let mut tarballs = HashMap::new(); let mut versions = serde_json::Map::new(); + let mut latest_version = semver::Version::parse("0.0.0").unwrap(); for entry in fs::read_dir(&package_folder)? { let entry = entry?; let file_type = entry.file_type()?; @@ -134,13 +135,21 @@ fn get_npm_package(package_name: &str) -> Result<Option<CustomNpmPackage>> { let mut version_info: serde_json::Map<String, serde_json::Value> = serde_json::from_str(&package_json_text)?; version_info.insert("dist".to_string(), dist.into()); - versions.insert(version, version_info.into()); + versions.insert(version.clone(), version_info.into()); + let version = semver::Version::parse(&version)?; + if version.cmp(&latest_version).is_gt() { + latest_version = version; + } } + let mut dist_tags = serde_json::Map::new(); + dist_tags.insert("latest".to_string(), latest_version.to_string().into()); + // create the registry file for this package let mut registry_file = serde_json::Map::new(); registry_file.insert("name".to_string(), package_name.to_string().into()); registry_file.insert("versions".to_string(), versions.into()); + registry_file.insert("dist-tags".to_string(), dist_tags.into()); Ok(Some(CustomNpmPackage { registry_file: serde_json::to_string(®istry_file).unwrap(), tarballs, |