mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 19:08:15 +00:00
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:
parent
2eb0f9fb5c
commit
efa7c19890
12 changed files with 59 additions and 31 deletions
|
@ -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")
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue