mirror of
https://github.com/denoland/deno.git
synced 2025-10-02 07:01:16 +00:00
refactor(npm): extract out some npm fs resolution code from the cli (#27607)
Moves the npm fs resolvers into the deno_resolution crate. This does not entirely move things out, but is a step in that direction.
This commit is contained in:
parent
ce0968ef3a
commit
093f3ba565
24 changed files with 312 additions and 213 deletions
|
@ -23,6 +23,10 @@ use deno_npm::NpmResolutionPackage;
|
|||
use deno_npm::NpmSystemInfo;
|
||||
use deno_npm_cache::NpmCacheSetting;
|
||||
use deno_path_util::fs::canonicalize_path_maybe_not_exists;
|
||||
use deno_resolver::npm::managed::create_npm_fs_resolver;
|
||||
use deno_resolver::npm::managed::NpmPackageFsResolver;
|
||||
use deno_resolver::npm::managed::NpmPackageFsResolverPackageFolderError;
|
||||
use deno_resolver::npm::managed::NpmResolution;
|
||||
use deno_resolver::npm::CliNpmReqResolver;
|
||||
use deno_runtime::colors;
|
||||
use deno_runtime::ops::process::NpmProcessStateProvider;
|
||||
|
@ -37,9 +41,6 @@ use node_resolver::errors::PackageFolderResolveIoError;
|
|||
use node_resolver::InNpmPackageChecker;
|
||||
use node_resolver::NpmPackageFolderResolver;
|
||||
|
||||
use self::resolution::NpmResolution;
|
||||
use self::resolvers::create_npm_fs_resolver;
|
||||
use self::resolvers::NpmPackageFsResolver;
|
||||
use super::CliNpmCache;
|
||||
use super::CliNpmCacheHttpClient;
|
||||
use super::CliNpmRegistryInfoProvider;
|
||||
|
@ -60,8 +61,6 @@ use crate::util::sync::AtomicFlag;
|
|||
|
||||
mod installer;
|
||||
mod installers;
|
||||
mod resolution;
|
||||
mod resolvers;
|
||||
|
||||
pub enum CliNpmResolverManagedSnapshotOption {
|
||||
ResolveFromLockfile(Arc<CliLockfile>),
|
||||
|
@ -104,6 +103,7 @@ pub async fn create_managed_npm_resolver_for_lsp(
|
|||
create_inner(
|
||||
http_client,
|
||||
npm_cache,
|
||||
options.npm_cache_dir,
|
||||
options.npm_install_deps_provider,
|
||||
npm_api,
|
||||
options.sys,
|
||||
|
@ -133,6 +133,7 @@ pub async fn create_managed_npm_resolver(
|
|||
Ok(create_inner(
|
||||
http_client,
|
||||
npm_cache,
|
||||
options.npm_cache_dir,
|
||||
options.npm_install_deps_provider,
|
||||
api,
|
||||
options.sys,
|
||||
|
@ -150,6 +151,7 @@ pub async fn create_managed_npm_resolver(
|
|||
fn create_inner(
|
||||
http_client: Arc<CliNpmCacheHttpClient>,
|
||||
npm_cache: Arc<CliNpmCache>,
|
||||
npm_cache_dir: Arc<NpmCacheDir>,
|
||||
npm_install_deps_provider: Arc<NpmInstallDepsProvider>,
|
||||
registry_info_provider: Arc<CliNpmRegistryInfoProvider>,
|
||||
sys: CliSys,
|
||||
|
@ -181,7 +183,8 @@ fn create_inner(
|
|||
lifecycle_scripts.clone(),
|
||||
);
|
||||
let fs_resolver = create_npm_fs_resolver(
|
||||
npm_cache.clone(),
|
||||
&npm_cache_dir,
|
||||
&npm_rc,
|
||||
resolution.clone(),
|
||||
sys.clone(),
|
||||
node_modules_dir_path,
|
||||
|
@ -192,7 +195,9 @@ fn create_inner(
|
|||
maybe_lockfile,
|
||||
registry_info_provider,
|
||||
npm_cache,
|
||||
npm_cache_dir,
|
||||
npm_install_deps_provider,
|
||||
npm_rc,
|
||||
resolution,
|
||||
sys,
|
||||
tarball_cache,
|
||||
|
@ -314,7 +319,9 @@ pub struct ManagedCliNpmResolver {
|
|||
maybe_lockfile: Option<Arc<CliLockfile>>,
|
||||
registry_info_provider: Arc<CliNpmRegistryInfoProvider>,
|
||||
npm_cache: Arc<CliNpmCache>,
|
||||
npm_cache_dir: Arc<NpmCacheDir>,
|
||||
npm_install_deps_provider: Arc<NpmInstallDepsProvider>,
|
||||
npm_rc: Arc<ResolvedNpmRc>,
|
||||
sys: CliSys,
|
||||
resolution: Arc<NpmResolution>,
|
||||
resolution_installer: NpmResolutionInstaller,
|
||||
|
@ -338,7 +345,7 @@ pub enum ResolvePkgFolderFromPkgIdError {
|
|||
#[class(inherit)]
|
||||
#[error("{0}")]
|
||||
NpmPackageFsResolverPackageFolder(
|
||||
#[from] resolvers::NpmPackageFsResolverPackageFolderError,
|
||||
#[from] NpmPackageFsResolverPackageFolderError,
|
||||
),
|
||||
#[class(inherit)]
|
||||
#[error("{0}")]
|
||||
|
@ -363,7 +370,9 @@ impl ManagedCliNpmResolver {
|
|||
maybe_lockfile: Option<Arc<CliLockfile>>,
|
||||
registry_info_provider: Arc<CliNpmRegistryInfoProvider>,
|
||||
npm_cache: Arc<CliNpmCache>,
|
||||
npm_cache_dir: Arc<NpmCacheDir>,
|
||||
npm_install_deps_provider: Arc<NpmInstallDepsProvider>,
|
||||
npm_rc: Arc<ResolvedNpmRc>,
|
||||
resolution: Arc<NpmResolution>,
|
||||
sys: CliSys,
|
||||
tarball_cache: Arc<CliNpmTarballCache>,
|
||||
|
@ -382,7 +391,9 @@ impl ManagedCliNpmResolver {
|
|||
maybe_lockfile,
|
||||
registry_info_provider,
|
||||
npm_cache,
|
||||
npm_cache_dir,
|
||||
npm_install_deps_provider,
|
||||
npm_rc,
|
||||
text_only_progress_bar,
|
||||
resolution,
|
||||
resolution_installer,
|
||||
|
@ -671,11 +682,11 @@ impl ManagedCliNpmResolver {
|
|||
}
|
||||
|
||||
pub fn global_cache_root_path(&self) -> &Path {
|
||||
self.npm_cache.root_dir_path()
|
||||
self.npm_cache_dir.root_dir()
|
||||
}
|
||||
|
||||
pub fn global_cache_root_url(&self) -> &Url {
|
||||
self.npm_cache.root_dir_url()
|
||||
self.npm_cache_dir.root_dir_url()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -772,7 +783,8 @@ impl CliNpmResolver for ManagedCliNpmResolver {
|
|||
self.lifecycle_scripts.clone(),
|
||||
),
|
||||
create_npm_fs_resolver(
|
||||
self.npm_cache.clone(),
|
||||
&self.npm_cache_dir,
|
||||
&self.npm_rc,
|
||||
npm_resolution.clone(),
|
||||
self.sys.clone(),
|
||||
self.root_node_modules_path().map(ToOwned::to_owned),
|
||||
|
@ -780,7 +792,9 @@ impl CliNpmResolver for ManagedCliNpmResolver {
|
|||
self.maybe_lockfile.clone(),
|
||||
self.registry_info_provider.clone(),
|
||||
self.npm_cache.clone(),
|
||||
self.npm_cache_dir.clone(),
|
||||
self.npm_install_deps_provider.clone(),
|
||||
self.npm_rc.clone(),
|
||||
npm_resolution,
|
||||
self.sys.clone(),
|
||||
self.tarball_cache.clone(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue