diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/module_loader.rs | 15 | ||||
-rw-r--r-- | cli/standalone/mod.rs | 14 |
2 files changed, 28 insertions, 1 deletions
diff --git a/cli/module_loader.rs b/cli/module_loader.rs index 3ac222b01..afd707ad8 100644 --- a/cli/module_loader.rs +++ b/cli/module_loader.rs @@ -35,7 +35,6 @@ use crate::util::text_encoding::code_without_source_map; use crate::util::text_encoding::source_map_from_code; use crate::worker::ModuleLoaderAndSourceMapGetter; use crate::worker::ModuleLoaderFactory; - use deno_ast::MediaType; use deno_core::anyhow::anyhow; use deno_core::anyhow::bail; @@ -64,6 +63,7 @@ use deno_graph::Module; use deno_graph::ModuleGraph; use deno_graph::Resolution; use deno_runtime::code_cache; +use deno_runtime::deno_node::create_host_defined_options; use deno_runtime::deno_permissions::PermissionsContainer; use deno_semver::npm::NpmPackageReqReference; use node_resolver::NodeResolutionMode; @@ -725,6 +725,19 @@ impl<TGraphContainer: ModuleGraphContainer> ModuleLoader Ok(specifier) } + fn get_host_defined_options<'s>( + &self, + scope: &mut deno_core::v8::HandleScope<'s>, + name: &str, + ) -> Option<deno_core::v8::Local<'s, deno_core::v8::Data>> { + let name = deno_core::ModuleSpecifier::parse(name).ok()?; + if self.0.shared.node_resolver.in_npm_package(&name) { + Some(create_host_defined_options(scope)) + } else { + None + } + } + fn load( &self, specifier: &ModuleSpecifier, diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs index 1538807f1..afacacc1f 100644 --- a/cli/standalone/mod.rs +++ b/cli/standalone/mod.rs @@ -25,6 +25,7 @@ use deno_core::ResolutionKind; use deno_npm::npm_rc::ResolvedNpmRc; use deno_package_json::PackageJsonDepValue; use deno_runtime::deno_fs; +use deno_runtime::deno_node::create_host_defined_options; use deno_runtime::deno_node::NodeResolver; use deno_runtime::deno_permissions::Permissions; use deno_runtime::deno_permissions::PermissionsContainer; @@ -267,6 +268,19 @@ impl ModuleLoader for EmbeddedModuleLoader { } } + fn get_host_defined_options<'s>( + &self, + scope: &mut deno_core::v8::HandleScope<'s>, + name: &str, + ) -> Option<deno_core::v8::Local<'s, deno_core::v8::Data>> { + let name = deno_core::ModuleSpecifier::parse(name).ok()?; + if self.shared.node_resolver.in_npm_package(&name) { + Some(create_host_defined_options(scope)) + } else { + None + } + } + fn load( &self, original_specifier: &ModuleSpecifier, |