summaryrefslogtreecommitdiff
path: root/cli/npm
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-08-21 11:53:52 +0200
committerGitHub <noreply@github.com>2023-08-21 09:53:52 +0000
commit5834d282d4de5d0b5cacb9bf068f3896bef0a48a (patch)
tree0e1d15e9f81600ce3c910a70c6e7c12952778f72 /cli/npm
parentaf125c8e700eacc7360b3d81ffe4de13e12a612a (diff)
refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193)
Diffstat (limited to 'cli/npm')
-rw-r--r--cli/npm/cache.rs31
-rw-r--r--cli/npm/installer.rs6
-rw-r--r--cli/npm/resolution.rs26
-rw-r--r--cli/npm/resolvers/local.rs16
-rw-r--r--cli/npm/resolvers/mod.rs20
-rw-r--r--cli/npm/tarball.rs8
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(),
};