From 28aa489de9cd4f995ec2fc02e2c9d224e89f4c01 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 10 May 2023 20:06:59 -0400 Subject: feat(compile): unstable npm and node specifier support (#19005) This is the initial support for npm and node specifiers in `deno compile`. The npm packages are included in the binary and read from it via a virtual file system. This also supports the `--node-modules-dir` flag, dependencies specified in a package.json, and npm binary commands (ex. `deno compile --unstable npm:cowsay`) Closes #16632 --- cli/npm/resolvers/global.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'cli/npm/resolvers/global.rs') diff --git a/cli/npm/resolvers/global.rs b/cli/npm/resolvers/global.rs index 79df16187..fe8764b0c 100644 --- a/cli/npm/resolvers/global.rs +++ b/cli/npm/resolvers/global.rs @@ -14,6 +14,7 @@ use deno_npm::resolution::PackageNotFoundFromReferrerError; use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; +use deno_runtime::deno_fs::FileSystem; use deno_runtime::deno_node::NodePermissions; use deno_runtime::deno_node::NodeResolutionMode; @@ -28,6 +29,7 @@ use super::common::NpmPackageFsResolver; /// Resolves packages from the global npm cache. #[derive(Debug)] pub struct GlobalNpmPackageResolver { + fs: Arc, cache: Arc, resolution: Arc, registry_url: Url, @@ -35,11 +37,13 @@ pub struct GlobalNpmPackageResolver { impl GlobalNpmPackageResolver { pub fn new( + fs: Arc, cache: Arc, registry_url: Url, resolution: Arc, ) -> Self { Self { + fs, cache, resolution, registry_url, @@ -130,7 +134,7 @@ impl NpmPackageFsResolver for GlobalNpmPackageResolver { path: &Path, ) -> Result<(), AnyError> { let registry_path = self.cache.registry_folder(&self.registry_url); - ensure_registry_read_permission(permissions, ®istry_path, path) + ensure_registry_read_permission(&self.fs, permissions, ®istry_path, path) } } -- cgit v1.2.3