summaryrefslogtreecommitdiff
path: root/cli/standalone/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-05-18 11:42:03 -0400
committerGitHub <noreply@github.com>2024-05-18 11:42:03 -0400
commita2dbcf9e0aa1f70056ccc6ecdd4c813d30af768c (patch)
treeae0c11a160b1203209b5a54d5dbb693d7dbc5135 /cli/standalone/mod.rs
parentfcb6a18b2b9fe23f3c19f6039d8f270a3a1999d6 (diff)
perf: analyze cjs exports and emit typescript in parallel (#23856)
Diffstat (limited to 'cli/standalone/mod.rs')
-rw-r--r--cli/standalone/mod.rs40
1 files changed, 20 insertions, 20 deletions
diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs
index 37720bd54..288618287 100644
--- a/cli/standalone/mod.rs
+++ b/cli/standalone/mod.rs
@@ -193,33 +193,33 @@ impl ModuleLoader for EmbeddedModuleLoader {
));
}
- let permissions = if is_dynamic {
- &self.dynamic_permissions
- } else {
- &self.root_permissions
- };
- if let Some(result) =
- self.shared.npm_module_loader.load_sync_if_in_npm_package(
- original_specifier,
- maybe_referrer,
- permissions,
- )
- {
- return match result {
- Ok(code_source) => deno_core::ModuleLoadResponse::Sync(Ok(
- deno_core::ModuleSource::new_with_redirect(
+ if self.shared.node_resolver.in_npm_package(original_specifier) {
+ let npm_module_loader = self.shared.npm_module_loader.clone();
+ let original_specifier = original_specifier.clone();
+ let maybe_referrer = maybe_referrer.cloned();
+ let permissions = if is_dynamic {
+ self.dynamic_permissions.clone()
+ } else {
+ self.root_permissions.clone()
+ };
+ return deno_core::ModuleLoadResponse::Async(
+ async move {
+ let code_source = npm_module_loader
+ .load(&original_specifier, maybe_referrer.as_ref(), &permissions)
+ .await?;
+ Ok(deno_core::ModuleSource::new_with_redirect(
match code_source.media_type {
MediaType::Json => ModuleType::Json,
_ => ModuleType::JavaScript,
},
ModuleSourceCode::String(code_source.code),
- original_specifier,
+ &original_specifier,
&code_source.found_url,
None,
- ),
- )),
- Err(err) => deno_core::ModuleLoadResponse::Sync(Err(err)),
- };
+ ))
+ }
+ .boxed_local(),
+ );
}
let Some(module) =