diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-08-21 11:53:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-21 09:53:52 +0000 |
commit | 5834d282d4de5d0b5cacb9bf068f3896bef0a48a (patch) | |
tree | 0e1d15e9f81600ce3c910a70c6e7c12952778f72 /cli/npm | |
parent | af125c8e700eacc7360b3d81ffe4de13e12a612a (diff) |
refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193)
Diffstat (limited to 'cli/npm')
-rw-r--r-- | cli/npm/cache.rs | 31 | ||||
-rw-r--r-- | cli/npm/installer.rs | 6 | ||||
-rw-r--r-- | cli/npm/resolution.rs | 26 | ||||
-rw-r--r-- | cli/npm/resolvers/local.rs | 16 | ||||
-rw-r--r-- | cli/npm/resolvers/mod.rs | 20 | ||||
-rw-r--r-- | cli/npm/tarball.rs | 8 |
6 files changed, 49 insertions, 58 deletions
diff --git a/cli/npm/cache.rs b/cli/npm/cache.rs index c657beef3..587ce6fd0 100644 --- a/cli/npm/cache.rs +++ b/cli/npm/cache.rs @@ -16,7 +16,7 @@ use deno_core::url::Url; use deno_npm::registry::NpmPackageVersionDistInfo; use deno_npm::NpmPackageCacheFolderId; use deno_runtime::deno_fs; -use deno_semver::npm::NpmPackageNv; +use deno_semver::package::PackageNv; use deno_semver::Version; use once_cell::sync::Lazy; @@ -43,7 +43,7 @@ pub fn should_sync_download() -> bool { const NPM_PACKAGE_SYNC_LOCK_FILENAME: &str = ".deno_sync_lock"; pub fn with_folder_sync_lock( - package: &NpmPackageNv, + package: &PackageNv, output_folder: &Path, action: impl FnOnce() -> Result<(), AnyError>, ) -> Result<(), AnyError> { @@ -162,7 +162,7 @@ impl NpmCacheDir { pub fn package_folder_for_name_and_version( &self, - package: &NpmPackageNv, + package: &PackageNv, registry_url: &Url, ) -> PathBuf { self @@ -251,7 +251,7 @@ impl NpmCacheDir { (version_part, 0) }; Some(NpmPackageCacheFolderId { - nv: NpmPackageNv { + nv: PackageNv { name, version: Version::parse_from_npm(version).ok()?, }, @@ -273,7 +273,7 @@ pub struct NpmCache { http_client: Arc<HttpClient>, progress_bar: ProgressBar, /// ensures a package is only downloaded once per run - previously_reloaded_packages: Mutex<HashSet<NpmPackageNv>>, + previously_reloaded_packages: Mutex<HashSet<PackageNv>>, } impl NpmCache { @@ -311,10 +311,7 @@ impl NpmCache { /// to ensure a package is only downloaded once per run of the CLI. This /// prevents downloads from re-occurring when someone has `--reload` and /// and imports a dynamic import that imports the same package again for example. - fn should_use_global_cache_for_package( - &self, - package: &NpmPackageNv, - ) -> bool { + fn should_use_global_cache_for_package(&self, package: &PackageNv) -> bool { self.cache_setting.should_use_for_npm_package(&package.name) || !self .previously_reloaded_packages @@ -324,7 +321,7 @@ impl NpmCache { pub async fn ensure_package( &self, - package: &NpmPackageNv, + package: &PackageNv, dist: &NpmPackageVersionDistInfo, registry_url: &Url, ) -> Result<(), AnyError> { @@ -336,7 +333,7 @@ impl NpmCache { async fn ensure_package_inner( &self, - package: &NpmPackageNv, + package: &PackageNv, dist: &NpmPackageVersionDistInfo, registry_url: &Url, ) -> Result<(), AnyError> { @@ -422,7 +419,7 @@ impl NpmCache { pub fn package_folder_for_name_and_version( &self, - package: &NpmPackageNv, + package: &PackageNv, registry_url: &Url, ) -> PathBuf { self @@ -467,7 +464,7 @@ pub fn mixed_case_package_name_decode(name: &str) -> Option<String> { #[cfg(test)] mod test { use deno_core::url::Url; - use deno_semver::npm::NpmPackageNv; + use deno_semver::package::PackageNv; use deno_semver::Version; use super::NpmCacheDir; @@ -483,7 +480,7 @@ mod test { assert_eq!( cache.package_folder_for_id( &NpmPackageCacheFolderId { - nv: NpmPackageNv { + nv: PackageNv { name: "json".to_string(), version: Version::parse_from_npm("1.2.5").unwrap(), }, @@ -500,7 +497,7 @@ mod test { assert_eq!( cache.package_folder_for_id( &NpmPackageCacheFolderId { - nv: NpmPackageNv { + nv: PackageNv { name: "json".to_string(), version: Version::parse_from_npm("1.2.5").unwrap(), }, @@ -517,7 +514,7 @@ mod test { assert_eq!( cache.package_folder_for_id( &NpmPackageCacheFolderId { - nv: NpmPackageNv { + nv: PackageNv { name: "JSON".to_string(), version: Version::parse_from_npm("2.1.5").unwrap(), }, @@ -534,7 +531,7 @@ mod test { assert_eq!( cache.package_folder_for_id( &NpmPackageCacheFolderId { - nv: NpmPackageNv { + nv: PackageNv { name: "@types/JSON".to_string(), version: Version::parse_from_npm("2.1.5").unwrap(), }, diff --git a/cli/npm/installer.rs b/cli/npm/installer.rs index adb4344ee..9e7b413b4 100644 --- a/cli/npm/installer.rs +++ b/cli/npm/installer.rs @@ -8,7 +8,7 @@ use deno_core::futures::stream::FuturesOrdered; use deno_core::futures::StreamExt; use deno_npm::registry::NpmRegistryApi; use deno_npm::registry::NpmRegistryPackageInfoLoadError; -use deno_semver::npm::NpmPackageReq; +use deno_semver::package::PackageReq; use crate::args::PackageJsonDepsProvider; use crate::util::sync::AtomicFlag; @@ -27,11 +27,11 @@ struct PackageJsonDepsInstallerInner { impl PackageJsonDepsInstallerInner { pub fn reqs_with_info_futures<'a>( &self, - reqs: &'a [&'a NpmPackageReq], + reqs: &'a [&'a PackageReq], ) -> FuturesOrdered< impl Future< Output = Result< - (&'a NpmPackageReq, Arc<deno_npm::registry::NpmPackageInfo>), + (&'a PackageReq, Arc<deno_npm::registry::NpmPackageInfo>), NpmRegistryPackageInfoLoadError, >, >, diff --git a/cli/npm/resolution.rs b/cli/npm/resolution.rs index 6beb52090..d097f8cd4 100644 --- a/cli/npm/resolution.rs +++ b/cli/npm/resolution.rs @@ -27,8 +27,8 @@ use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; -use deno_semver::npm::NpmPackageNv; -use deno_semver::npm::NpmPackageReq; +use deno_semver::package::PackageNv; +use deno_semver::package::PackageReq; use deno_semver::VersionReq; use crate::args::Lockfile; @@ -82,7 +82,7 @@ impl NpmResolution { pub async fn add_package_reqs( &self, - package_reqs: &[NpmPackageReq], + package_reqs: &[PackageReq], ) -> Result<(), AnyError> { // only allow one thread in here at a time let _permit = self.update_queue.acquire().await; @@ -100,7 +100,7 @@ impl NpmResolution { pub async fn set_package_reqs( &self, - package_reqs: &[NpmPackageReq], + package_reqs: &[PackageReq], ) -> Result<(), AnyError> { // only allow one thread in here at a time let _permit = self.update_queue.acquire().await; @@ -185,7 +185,7 @@ impl NpmResolution { /// Resolve a node package from a deno module. pub fn resolve_pkg_id_from_pkg_req( &self, - req: &NpmPackageReq, + req: &PackageReq, ) -> Result<NpmPackageId, PackageReqNotFoundError> { self .snapshot @@ -197,7 +197,7 @@ impl NpmResolution { pub fn resolve_pkg_reqs_from_pkg_id( &self, id: &NpmPackageId, - ) -> Vec<NpmPackageReq> { + ) -> Vec<PackageReq> { let snapshot = self.snapshot.read(); let mut pkg_reqs = snapshot .package_reqs() @@ -211,7 +211,7 @@ impl NpmResolution { pub fn resolve_pkg_id_from_deno_module( &self, - id: &NpmPackageNv, + id: &PackageNv, ) -> Result<NpmPackageId, PackageNvNotFoundError> { self .snapshot @@ -225,8 +225,8 @@ impl NpmResolution { /// a package.json pub fn resolve_package_req_as_pending( &self, - pkg_req: &NpmPackageReq, - ) -> Result<NpmPackageNv, NpmPackageVersionResolutionError> { + pkg_req: &PackageReq, + ) -> Result<PackageNv, NpmPackageVersionResolutionError> { // we should always have this because it should have been cached before here let package_info = self.api.get_cached_package_info(&pkg_req.name).unwrap(); self.resolve_package_req_as_pending_with_info(pkg_req, &package_info) @@ -237,9 +237,9 @@ impl NpmResolution { /// a package.json pub fn resolve_package_req_as_pending_with_info( &self, - pkg_req: &NpmPackageReq, + pkg_req: &PackageReq, package_info: &NpmPackageInfo, - ) -> Result<NpmPackageNv, NpmPackageVersionResolutionError> { + ) -> Result<PackageNv, NpmPackageVersionResolutionError> { debug_assert_eq!(pkg_req.name, package_info.name); let mut snapshot = self.snapshot.write(); let pending_resolver = get_npm_pending_resolver(&self.api); @@ -251,7 +251,7 @@ impl NpmResolution { Ok(nv) } - pub fn package_reqs(&self) -> HashMap<NpmPackageReq, NpmPackageNv> { + pub fn package_reqs(&self) -> HashMap<PackageReq, PackageNv> { self.snapshot.read().package_reqs().clone() } @@ -304,7 +304,7 @@ impl NpmResolution { async fn add_package_reqs_to_snapshot( api: &CliNpmRegistryApi, - package_reqs: &[NpmPackageReq], + package_reqs: &[PackageReq], maybe_lockfile: Option<Arc<Mutex<Lockfile>>>, get_new_snapshot: impl Fn() -> NpmResolutionSnapshot, ) -> Result<NpmResolutionSnapshot, AnyError> { diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs index 6a0065ba8..71b91c452 100644 --- a/cli/npm/resolvers/local.rs +++ b/cli/npm/resolvers/local.rs @@ -37,7 +37,7 @@ use deno_runtime::deno_fs; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NodeResolutionMode; use deno_runtime::deno_node::PackageJson; -use deno_semver::npm::NpmPackageNv; +use deno_semver::package::PackageNv; use serde::Deserialize; use serde::Serialize; @@ -657,7 +657,7 @@ fn get_package_folder_id_from_folder_name( }; let version = deno_semver::Version::parse_from_npm(raw_version).ok()?; Some(NpmPackageCacheFolderId { - nv: NpmPackageNv { name, version }, + nv: PackageNv { name, version }, copy_index, }) } @@ -726,7 +726,7 @@ fn join_package_name(path: &Path, package_name: &str) -> PathBuf { #[cfg(test)] mod test { use deno_npm::NpmPackageCacheFolderId; - use deno_semver::npm::NpmPackageNv; + use deno_semver::package::PackageNv; use test_util::TempDir; use super::*; @@ -736,20 +736,14 @@ mod test { let cases = vec![ ( NpmPackageCacheFolderId { - nv: NpmPackageNv { - name: "@types/foo".to_string(), - version: deno_semver::Version::parse_standard("1.2.3").unwrap(), - }, + nv: PackageNv::from_str("@types/foo@1.2.3").unwrap(), copy_index: 1, }, "@types+foo@1.2.3_1".to_string(), ), ( NpmPackageCacheFolderId { - nv: NpmPackageNv { - name: "JSON".to_string(), - version: deno_semver::Version::parse_standard("3.2.1").unwrap(), - }, + nv: PackageNv::from_str("JSON@3.2.1").unwrap(), copy_index: 0, }, "_jjju6tq@3.2.1".to_string(), diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs index 1b3f57c9a..58a70dff0 100644 --- a/cli/npm/resolvers/mod.rs +++ b/cli/npm/resolvers/mod.rs @@ -25,8 +25,8 @@ use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NodeResolutionMode; use deno_runtime::deno_node::NpmResolver; use deno_runtime::deno_node::PathClean; -use deno_semver::npm::NpmPackageNv; -use deno_semver::npm::NpmPackageReq; +use deno_semver::package::PackageNv; +use deno_semver::package::PackageReq; use global::GlobalNpmPackageResolver; use serde::Deserialize; use serde::Serialize; @@ -91,7 +91,7 @@ impl CliNpmResolver { } /// Checks if the provided package req's folder is cached. - pub fn is_pkg_req_folder_cached(&self, req: &NpmPackageReq) -> bool { + pub fn is_pkg_req_folder_cached(&self, req: &PackageReq) -> bool { self .resolve_pkg_id_from_pkg_req(req) .ok() @@ -102,7 +102,7 @@ impl CliNpmResolver { pub fn resolve_pkg_id_from_pkg_req( &self, - req: &NpmPackageReq, + req: &PackageReq, ) -> Result<NpmPackageId, PackageReqNotFoundError> { self.resolution.resolve_pkg_id_from_pkg_req(req) } @@ -182,7 +182,7 @@ impl CliNpmResolver { /// Adds package requirements to the resolver and ensures everything is setup. pub async fn add_package_reqs( &self, - packages: &[NpmPackageReq], + packages: &[PackageReq], ) -> Result<(), AnyError> { if packages.is_empty() { return Ok(()); @@ -205,7 +205,7 @@ impl CliNpmResolver { /// This will retrieve and resolve package information, but not cache any package files. pub async fn set_package_reqs( &self, - packages: &[NpmPackageReq], + packages: &[PackageReq], ) -> Result<(), AnyError> { self.resolution.set_package_reqs(packages).await } @@ -225,7 +225,7 @@ impl CliNpmResolver { .unwrap() } - pub fn package_reqs(&self) -> HashMap<NpmPackageReq, NpmPackageNv> { + pub fn package_reqs(&self) -> HashMap<PackageReq, PackageNv> { self.resolution.package_reqs() } @@ -241,7 +241,7 @@ impl CliNpmResolver { &self, ) -> Result<(), AnyError> { // add and ensure this isn't added to the lockfile - let package_reqs = vec![NpmPackageReq::from_str("@types/node").unwrap()]; + let package_reqs = vec![PackageReq::from_str("@types/node").unwrap()]; self.resolution.add_package_reqs(&package_reqs).await?; self.fs_resolver.cache_packages().await?; @@ -279,7 +279,7 @@ impl NpmResolver for CliNpmResolver { fn resolve_package_folder_from_deno_module( &self, - pkg_nv: &NpmPackageNv, + pkg_nv: &PackageNv, ) -> Result<PathBuf, AnyError> { let pkg_id = self.resolution.resolve_pkg_id_from_deno_module(pkg_nv)?; self.resolve_pkg_folder_from_pkg_id(&pkg_id) @@ -287,7 +287,7 @@ impl NpmResolver for CliNpmResolver { fn resolve_pkg_id_from_pkg_req( &self, - req: &NpmPackageReq, + req: &PackageReq, ) -> Result<NpmPackageId, PackageReqNotFoundError> { self.resolution.resolve_pkg_id_from_pkg_req(req) } diff --git a/cli/npm/tarball.rs b/cli/npm/tarball.rs index 18a555671..f2f8d1ba4 100644 --- a/cli/npm/tarball.rs +++ b/cli/npm/tarball.rs @@ -8,7 +8,7 @@ use std::path::PathBuf; use deno_core::anyhow::bail; use deno_core::error::AnyError; use deno_npm::registry::NpmPackageVersionDistInfo; -use deno_semver::npm::NpmPackageNv; +use deno_semver::package::PackageNv; use flate2::read::GzDecoder; use tar::Archive; use tar::EntryType; @@ -16,7 +16,7 @@ use tar::EntryType; use super::cache::with_folder_sync_lock; pub fn verify_and_extract_tarball( - package: &NpmPackageNv, + package: &PackageNv, data: &[u8], dist_info: &NpmPackageVersionDistInfo, output_folder: &Path, @@ -29,7 +29,7 @@ pub fn verify_and_extract_tarball( } fn verify_tarball_integrity( - package: &NpmPackageNv, + package: &PackageNv, data: &[u8], npm_integrity: &str, ) -> Result<(), AnyError> { @@ -140,7 +140,7 @@ mod test { #[test] pub fn test_verify_tarball() { - let package = NpmPackageNv { + let package = PackageNv { name: "package".to_string(), version: Version::parse_from_npm("1.0.0").unwrap(), }; |