From d07aa4a0723b04583b7cb1e09152457d866d13d3 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 6 Apr 2023 18:46:44 -0400 Subject: refactor(npm): use deno_npm and deno_semver (#18602) --- cli/args/package_json.rs | 37 +++++++------------------------------ 1 file changed, 7 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 5975395bb..c4d4ce956 100644 --- a/cli/args/package_json.rs +++ b/cli/args/package_json.rs @@ -7,41 +7,18 @@ use std::path::PathBuf; use deno_core::anyhow::bail; use deno_core::error::AnyError; -use deno_graph::npm::NpmPackageReq; -use deno_graph::semver::NpmVersionReqSpecifierParseError; -use deno_graph::semver::VersionReq; +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::npm::NpmPackageReq; +use deno_semver::npm::NpmVersionReqSpecifierParseError; +use deno_semver::VersionReq; use thiserror::Error; -#[derive(Debug, Clone, Error, PartialEq, Eq, Hash)] -#[error("Could not find @ symbol in npm url '{value}'")] -pub struct PackageJsonDepNpmSchemeValueParseError { - pub value: String, -} - -/// Gets the name and raw version constraint taking into account npm -/// package aliases. -pub fn parse_dep_entry_name_and_raw_version<'a>( - key: &'a str, - value: &'a str, -) -> Result<(&'a str, &'a str), PackageJsonDepNpmSchemeValueParseError> { - if let Some(package_and_version) = value.strip_prefix("npm:") { - if let Some((name, version)) = package_and_version.rsplit_once('@') { - Ok((name, version)) - } else { - Err(PackageJsonDepNpmSchemeValueParseError { - value: value.to_string(), - }) - } - } else { - Ok((key, value)) - } -} - -#[derive(Debug, Error, Clone, Hash)] +#[derive(Debug, Error, Clone)] pub enum PackageJsonDepValueParseError { #[error(transparent)] - SchemeValue(#[from] PackageJsonDepNpmSchemeValueParseError), + SchemeValue(#[from] PackageDepNpmSchemeValueParseError), #[error(transparent)] Specifier(#[from] NpmVersionReqSpecifierParseError), #[error("Not implemented scheme '{scheme}'")] -- cgit v1.2.3