From aa286fdecb15461ef8ddd4c372f5a13e01e1cb7b Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 24 Apr 2023 19:44:35 -0400 Subject: refactor(ext/node): allow injecting `NodeFs` from CLI (#18829) This allows providing a `NodeFs` as part of the `WorkerOptions`. --- cli/npm/resolvers/local.rs | 11 ++++++++--- cli/npm/resolvers/mod.rs | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'cli/npm/resolvers') diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs index a44afc935..e2919f6ee 100644 --- a/cli/npm/resolvers/local.rs +++ b/cli/npm/resolvers/local.rs @@ -23,6 +23,7 @@ use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_runtime::deno_core::futures; +use deno_runtime::deno_node::NodeFs; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NodeResolutionMode; use deno_runtime::deno_node::PackageJson; @@ -43,6 +44,7 @@ use super::common::NpmPackageFsResolver; /// and resolves packages from it. #[derive(Debug)] pub struct LocalNpmPackageResolver { + fs: Arc, cache: Arc, progress_bar: ProgressBar, resolution: Arc, @@ -53,6 +55,7 @@ pub struct LocalNpmPackageResolver { impl LocalNpmPackageResolver { pub fn new( + fs: Arc, cache: Arc, progress_bar: ProgressBar, registry_url: Url, @@ -60,6 +63,7 @@ impl LocalNpmPackageResolver { resolution: Arc, ) -> Self { Self { + fs, cache, progress_bar, resolution, @@ -149,9 +153,10 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { if sub_dir.is_dir() { // if doing types resolution, only resolve the package if it specifies a types property if mode.is_types() && !name.starts_with("@types/") { - let package_json = PackageJson::load_skip_read_permission::< - deno_runtime::deno_node::RealFs, - >(sub_dir.join("package.json"))?; + let package_json = PackageJson::load_skip_read_permission( + &*self.fs, + sub_dir.join("package.json"), + )?; if package_json.types.is_some() { return Ok(sub_dir); } diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs index 8b871beaf..fa83cdf59 100644 --- a/cli/npm/resolvers/mod.rs +++ b/cli/npm/resolvers/mod.rs @@ -18,6 +18,7 @@ use deno_npm::resolution::NpmResolutionSnapshot; use deno_npm::resolution::PackageReqNotFoundError; use deno_npm::resolution::SerializedNpmResolutionSnapshot; use deno_npm::NpmPackageId; +use deno_runtime::deno_node; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NodeResolutionMode; use deno_runtime::deno_node::NpmResolver; @@ -269,6 +270,7 @@ impl NpmResolver for CliNpmResolver { } pub fn create_npm_fs_resolver( + fs: Arc, cache: Arc, progress_bar: &ProgressBar, registry_url: Url, @@ -277,6 +279,7 @@ pub fn create_npm_fs_resolver( ) -> Arc { match maybe_node_modules_path { Some(node_modules_folder) => Arc::new(LocalNpmPackageResolver::new( + fs, cache, progress_bar.clone(), registry_url, -- cgit v1.2.3