refactor: upgrade to deno_npm 0.3.0 (#18671)

This allows us to specify the `@types/node` version constraint in the
CLI instead of in deno_npm.
This commit is contained in:
David Sherret 2023-04-13 10:47:45 -04:00 committed by GitHub
parent 2eb0f9fb5c
commit efa7c19890
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 59 additions and 31 deletions

View file

@ -11,9 +11,9 @@ use deno_core::futures::stream::FuturesOrdered;
use deno_core::futures::StreamExt;
use deno_core::parking_lot::Mutex;
use deno_npm::registry::NpmRegistryApi;
use deno_npm::resolution::NpmResolutionSnapshot;
use deno_npm::resolution::NpmResolutionSnapshotCreateOptions;
use deno_npm::resolution::NpmResolutionSnapshotCreateOptionsPackage;
use deno_npm::resolution::SerializedNpmResolutionSnapshot;
use deno_npm::resolution::SerializedNpmResolutionSnapshotPackage;
use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot;
use deno_npm::NpmPackageId;
use deno_semver::npm::NpmPackageReq;
@ -77,7 +77,7 @@ pub fn discover(
pub async fn snapshot_from_lockfile(
lockfile: Arc<Mutex<Lockfile>>,
api: &CliNpmRegistryApi,
) -> Result<NpmResolutionSnapshot, AnyError> {
) -> Result<ValidSerializedNpmResolutionSnapshot, AnyError> {
let (root_packages, mut packages) = {
let lockfile = lockfile.lock();
@ -105,7 +105,7 @@ pub async fn snapshot_from_lockfile(
dependencies.insert(name.clone(), dep_id);
}
packages.push(NpmResolutionSnapshotCreateOptionsPackage {
packages.push(SerializedNpmResolutionSnapshotPackage {
pkg_id,
dist: Default::default(), // temporarily empty
dependencies,
@ -154,9 +154,10 @@ pub async fn snapshot_from_lockfile(
// clear the memory cache to reduce memory usage
api.clear_memory_cache();
NpmResolutionSnapshot::from_packages(NpmResolutionSnapshotCreateOptions {
SerializedNpmResolutionSnapshot {
packages,
root_packages,
})
}
.into_valid()
.context("The lockfile is corrupt. You can recreate it with --lock-write")
}

View file

@ -12,7 +12,7 @@ use self::lockfile::snapshot_from_lockfile;
use self::package_json::PackageJsonDeps;
use ::import_map::ImportMap;
use deno_core::resolve_url_or_path;
use deno_npm::resolution::NpmResolutionSnapshot;
use deno_npm::resolution::ValidSerializedNpmResolutionSnapshot;
use deno_semver::npm::NpmPackageReqReference;
use indexmap::IndexMap;
@ -747,10 +747,10 @@ impl CliOptions {
pub async fn resolve_npm_resolution_snapshot(
&self,
api: &CliNpmRegistryApi,
) -> Result<Option<NpmResolutionSnapshot>, AnyError> {
) -> Result<Option<ValidSerializedNpmResolutionSnapshot>, AnyError> {
if let Some(state) = &*NPM_PROCESS_STATE {
// TODO(bartlomieju): remove this clone
return Ok(Some(state.snapshot.clone()));
return Ok(Some(state.snapshot.clone().into_valid()?));
}
if let Some(lockfile) = self.maybe_lock_file() {