From 69d5f136badfd7cfa9b979ff2fee7caf397098ca Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 22 Jan 2024 16:31:12 -0500 Subject: feat(lockfile): track JSR and npm dependencies in config file (#22004) See overview in https://github.com/denoland/deno_lockfile/pull/13 --- cli/args/package_json.rs | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) (limited to 'cli/args/package_json.rs') diff --git a/cli/args/package_json.rs b/cli/args/package_json.rs index c304d0715..67481fd07 100644 --- a/cli/args/package_json.rs +++ b/cli/args/package_json.rs @@ -6,7 +6,6 @@ use std::path::PathBuf; use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_npm::registry::parse_dep_entry_name_and_raw_version; -use deno_npm::registry::PackageDepNpmSchemeValueParseError; use deno_runtime::deno_node::PackageJson; use deno_semver::package::PackageReq; use deno_semver::VersionReq; @@ -16,8 +15,6 @@ use thiserror::Error; #[derive(Debug, Error, Clone)] pub enum PackageJsonDepValueParseError { - #[error(transparent)] - SchemeValue(#[from] PackageDepNpmSchemeValueParseError), #[error(transparent)] Specifier(#[from] VersionReqSpecifierParseError), #[error("Not implemented scheme '{scheme}'")] @@ -39,7 +36,7 @@ impl PackageJsonDepsProvider { self.0.as_ref() } - pub fn reqs(&self) -> Vec<&PackageReq> { + pub fn reqs(&self) -> Option> { match &self.0 { Some(deps) => { let mut package_reqs = deps @@ -47,9 +44,9 @@ impl PackageJsonDepsProvider { .filter_map(|r| r.as_ref().ok()) .collect::>(); package_reqs.sort(); // deterministic resolution - package_reqs + Some(package_reqs) } - None => Vec::new(), + None => None, } } } @@ -77,9 +74,7 @@ pub fn get_local_package_json_version_reqs( scheme: value.split(':').next().unwrap().to_string(), }); } - let (name, version_req) = parse_dep_entry_name_and_raw_version(key, value) - .map_err(PackageJsonDepValueParseError::SchemeValue)?; - + let (name, version_req) = parse_dep_entry_name_and_raw_version(key, value); let result = VersionReq::parse_from_specifier(version_req); match result { Ok(version_req) => Ok(PackageReq { @@ -159,27 +154,6 @@ mod test { use super::*; - #[test] - fn test_parse_dep_entry_name_and_raw_version() { - let cases = [ - ("test", "^1.2", Ok(("test", "^1.2"))), - ("test", "1.x - 2.6", Ok(("test", "1.x - 2.6"))), - ("test", "npm:package@^1.2", Ok(("package", "^1.2"))), - ( - "test", - "npm:package", - Err("Could not find @ symbol in npm url 'npm:package'"), - ), - ]; - for (key, value, expected_result) in cases { - let result = parse_dep_entry_name_and_raw_version(key, value); - match result { - Ok(result) => assert_eq!(result, expected_result.unwrap()), - Err(err) => assert_eq!(err.to_string(), expected_result.err().unwrap()), - } - } - } - fn get_local_package_json_version_reqs_for_tests( package_json: &PackageJson, ) -> IndexMap> { -- cgit v1.2.3