diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-10-02 17:53:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-02 17:53:55 -0400 |
commit | 148694eb351ea3f733852b7786a3268617811e27 (patch) | |
tree | 0390f1dcf7bb9b013a5bf47b0b9b4ea9689ba1b5 /cli/npm/mod.rs | |
parent | d5b6c636b09823bfaa97fe8cd382b654d85d2add (diff) |
refactor(npm): make `NpmCache`, `CliNpmRegistryApi`, and `NpmResolution` internal to `npm::managed` (#20764)
Diffstat (limited to 'cli/npm/mod.rs')
-rw-r--r-- | cli/npm/mod.rs | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/cli/npm/mod.rs b/cli/npm/mod.rs index 114bf15f2..22997a8b2 100644 --- a/cli/npm/mod.rs +++ b/cli/npm/mod.rs @@ -1,12 +1,8 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +mod cache_dir; mod managed; -// todo(#18967): move the cache, registry, and tarball into the managed folder -mod cache; -mod registry; -mod tarball; - use std::collections::HashMap; use std::path::PathBuf; use std::sync::Arc; @@ -17,20 +13,45 @@ use deno_core::url::Url; use deno_graph::NpmPackageReqResolution; use deno_npm::resolution::PackageReqNotFoundError; use deno_runtime::deno_node::NpmResolver; - -pub use cache::NpmCache; -pub use cache::NpmCacheDir; use deno_semver::npm::NpmPackageNvReference; use deno_semver::npm::NpmPackageReqReference; use deno_semver::package::PackageNv; use deno_semver::package::PackageReq; -pub use managed::create_npm_fs_resolver; -pub use managed::ManagedCliNpmResolver; -pub use managed::NpmPackageFsResolver; -pub use managed::NpmProcessState; -pub use managed::NpmResolution; -pub use managed::PackageJsonDepsInstaller; -pub use registry::CliNpmRegistryApi; + +pub use self::cache_dir::NpmCacheDir; +pub use self::managed::CliNpmResolverManagedCreateOptions; +pub use self::managed::CliNpmResolverManagedPackageJsonInstallerOption; +pub use self::managed::CliNpmResolverManagedSnapshotOption; +pub use self::managed::ManagedCliNpmResolver; + +pub enum CliNpmResolverCreateOptions { + Managed(CliNpmResolverManagedCreateOptions), + // todo(dsherret): implement this + #[allow(dead_code)] + Byonm, +} + +pub async fn create_cli_npm_resolver_for_lsp( + options: CliNpmResolverCreateOptions, +) -> Arc<dyn CliNpmResolver> { + use CliNpmResolverCreateOptions::*; + match options { + Managed(options) => { + managed::create_managed_npm_resolver_for_lsp(options).await + } + Byonm => todo!(), + } +} + +pub async fn create_cli_npm_resolver( + options: CliNpmResolverCreateOptions, +) -> Result<Arc<dyn CliNpmResolver>, AnyError> { + use CliNpmResolverCreateOptions::*; + match options { + Managed(options) => managed::create_managed_npm_resolver(options).await, + Byonm => todo!(), + } +} pub enum InnerCliNpmResolverRef<'a> { Managed(&'a ManagedCliNpmResolver), @@ -41,6 +62,8 @@ pub enum InnerCliNpmResolverRef<'a> { pub trait CliNpmResolver: NpmResolver { fn into_npm_resolver(self: Arc<Self>) -> Arc<dyn NpmResolver>; + fn clone_snapshotted(&self) -> Arc<dyn CliNpmResolver>; + fn root_dir_url(&self) -> &Url; fn as_inner(&self) -> InnerCliNpmResolverRef; |