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 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'cli/npm/resolvers/local.rs') 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); } -- cgit v1.2.3