summaryrefslogtreecommitdiff
path: root/cli/args/package_json.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-02-24 19:27:50 -0500
committerGitHub <noreply@github.com>2023-02-24 19:27:50 -0500
commit5683daf1aa1c01f5f4d01879d6ce054b0922faf6 (patch)
tree4cfb29e207866002f8afeba13c6ec016b02c0abc /cli/args/package_json.rs
parent484b6fe2faeec93912e1fc57b54784428cbd15d3 (diff)
fix: ignore workspace specifiers in package.json (#17934)
Part of #17916
Diffstat (limited to 'cli/args/package_json.rs')
-rw-r--r--cli/args/package_json.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/cli/args/package_json.rs b/cli/args/package_json.rs
index 667918cd1..97fb97f0b 100644
--- a/cli/args/package_json.rs
+++ b/cli/args/package_json.rs
@@ -44,6 +44,10 @@ pub fn get_local_package_json_version_reqs(
) -> Result<(), AnyError> {
if let Some(deps) = deps {
for (key, value) in deps {
+ if value.starts_with("workspace:") {
+ // skip workspace specifiers for now
+ continue;
+ }
let (name, version_req) =
parse_dep_entry_name_and_raw_version(key, value)?;
@@ -203,4 +207,21 @@ mod test {
)
);
}
+
+ #[test]
+ fn test_get_local_package_json_version_reqs_skips_workspace_specifiers() {
+ let mut package_json = PackageJson::empty(PathBuf::from("/package.json"));
+ package_json.dependencies = Some(HashMap::from([
+ ("test".to_string(), "1".to_string()),
+ ("work".to_string(), "workspace:1.1.1".to_string()),
+ ]));
+ let result = get_local_package_json_version_reqs(&package_json).unwrap();
+ assert_eq!(
+ result,
+ BTreeMap::from([(
+ "test".to_string(),
+ NpmPackageReq::from_str("test@1").unwrap()
+ )])
+ );
+ }
}