summaryrefslogtreecommitdiff
path: root/cli/standalone/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/standalone/mod.rs')
-rw-r--r--cli/standalone/mod.rs129
1 files changed, 53 insertions, 76 deletions
diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs
index 442334e39..64d56e6a5 100644
--- a/cli/standalone/mod.rs
+++ b/cli/standalone/mod.rs
@@ -14,14 +14,12 @@ use crate::http_util::HttpClient;
use crate::module_loader::CjsResolutionStore;
use crate::module_loader::NpmModuleLoader;
use crate::node::CliCjsCodeAnalyzer;
-use crate::npm::create_npm_fs_resolver;
-use crate::npm::CliNpmRegistryApi;
-use crate::npm::CliNpmResolver;
-use crate::npm::ManagedCliNpmResolver;
-use crate::npm::NpmCache;
+use crate::npm::create_cli_npm_resolver;
+use crate::npm::CliNpmResolverCreateOptions;
+use crate::npm::CliNpmResolverManagedCreateOptions;
+use crate::npm::CliNpmResolverManagedPackageJsonInstallerOption;
+use crate::npm::CliNpmResolverManagedSnapshotOption;
use crate::npm::NpmCacheDir;
-use crate::npm::NpmResolution;
-use crate::npm::PackageJsonDepsInstaller;
use crate::resolver::MappedSpecifierResolver;
use crate::util::progress_bar::ProgressBar;
use crate::util::progress_bar::ProgressBarStyle;
@@ -40,7 +38,6 @@ use deno_core::ModuleLoader;
use deno_core::ModuleSpecifier;
use deno_core::ModuleType;
use deno_core::ResolutionKind;
-use deno_npm::NpmSystemInfo;
use deno_runtime::deno_fs;
use deno_runtime::deno_node::analyze::NodeCodeTranslator;
use deno_runtime::deno_node::NodeResolver;
@@ -309,82 +306,62 @@ pub async fn run(
.join(format!("deno-compile-{}", current_exe_name))
.join("node_modules");
let npm_cache_dir = NpmCacheDir::new(root_path.clone());
- let (fs, vfs_root, node_modules_path, snapshot) = if let Some(snapshot) =
- eszip.take_npm_snapshot()
- {
- let vfs_root_dir_path = if metadata.node_modules_dir {
- root_path
- } else {
- npm_cache_dir.registry_folder(&npm_registry_url)
- };
- let vfs = load_npm_vfs(vfs_root_dir_path.clone())
- .context("Failed to load npm vfs.")?;
- let node_modules_path = if metadata.node_modules_dir {
- Some(vfs.root().to_path_buf())
+ let npm_global_cache_dir = npm_cache_dir.get_cache_location();
+ let (fs, vfs_root, maybe_node_modules_path, maybe_snapshot) =
+ if let Some(snapshot) = eszip.take_npm_snapshot() {
+ let vfs_root_dir_path = if metadata.node_modules_dir {
+ root_path
+ } else {
+ npm_cache_dir.registry_folder(&npm_registry_url)
+ };
+ let vfs = load_npm_vfs(vfs_root_dir_path.clone())
+ .context("Failed to load npm vfs.")?;
+ let node_modules_path = if metadata.node_modules_dir {
+ Some(vfs.root().to_path_buf())
+ } else {
+ None
+ };
+ (
+ Arc::new(DenoCompileFileSystem::new(vfs))
+ as Arc<dyn deno_fs::FileSystem>,
+ Some(vfs_root_dir_path),
+ node_modules_path,
+ Some(snapshot),
+ )
} else {
- None
+ (
+ Arc::new(deno_fs::RealFs) as Arc<dyn deno_fs::FileSystem>,
+ None,
+ None,
+ None,
+ )
};
- (
- Arc::new(DenoCompileFileSystem::new(vfs)) as Arc<dyn deno_fs::FileSystem>,
- Some(vfs_root_dir_path),
- node_modules_path,
- Some(snapshot),
- )
- } else {
- (
- Arc::new(deno_fs::RealFs) as Arc<dyn deno_fs::FileSystem>,
- None,
- None,
- None,
- )
- };
- let npm_cache = Arc::new(NpmCache::new(
- npm_cache_dir,
- CacheSetting::Only,
- fs.clone(),
- http_client.clone(),
- progress_bar.clone(),
- ));
- let npm_api = Arc::new(CliNpmRegistryApi::new(
- npm_registry_url.clone(),
- npm_cache.clone(),
- http_client.clone(),
- progress_bar.clone(),
- ));
- let npm_resolution = Arc::new(NpmResolution::from_serialized(
- npm_api.clone(),
- snapshot,
- None,
- ));
- let has_node_modules_dir = node_modules_path.is_some();
- let npm_fs_resolver = create_npm_fs_resolver(
- fs.clone(),
- npm_cache,
- &progress_bar,
- npm_registry_url,
- npm_resolution.clone(),
- node_modules_path,
- NpmSystemInfo::default(),
- );
+ let has_node_modules_dir = maybe_node_modules_path.is_some();
let package_json_deps_provider = Arc::new(PackageJsonDepsProvider::new(
metadata
.package_json_deps
.map(|serialized| serialized.into_deps()),
));
- let package_json_installer = Arc::new(PackageJsonDepsInstaller::new(
- package_json_deps_provider.clone(),
- npm_api.clone(),
- npm_resolution.clone(),
- ));
- let npm_resolver = Arc::new(ManagedCliNpmResolver::new(
- npm_api.clone(),
- fs.clone(),
- npm_resolution.clone(),
- npm_fs_resolver,
- None,
- package_json_installer,
- )) as Arc<dyn CliNpmResolver>;
+ let npm_resolver = create_cli_npm_resolver(
+ CliNpmResolverCreateOptions::Managed(CliNpmResolverManagedCreateOptions {
+ snapshot: CliNpmResolverManagedSnapshotOption::Specified(maybe_snapshot),
+ maybe_lockfile: None,
+ fs: fs.clone(),
+ http_client: http_client.clone(),
+ npm_global_cache_dir,
+ cache_setting: CacheSetting::Only,
+ text_only_progress_bar: progress_bar,
+ maybe_node_modules_path,
+ package_json_installer:
+ CliNpmResolverManagedPackageJsonInstallerOption::ConditionalInstall(
+ package_json_deps_provider.clone(),
+ ),
+ npm_registry_url,
+ npm_system_info: Default::default(),
+ }),
+ )
+ .await?;
let node_resolver = Arc::new(NodeResolver::new(
fs.clone(),
npm_resolver.clone().into_npm_resolver(),