From 5683daf1aa1c01f5f4d01879d6ce054b0922faf6 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 24 Feb 2023 19:27:50 -0500 Subject: [PATCH] fix: ignore workspace specifiers in package.json (#17934) Part of #17916 --- cli/args/package_json.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/cli/args/package_json.rs b/cli/args/package_json.rs index 667918cd1b..97fb97f0bb 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() + )]) + ); + } }