summaryrefslogtreecommitdiff
path: root/cli/cache/mod.rs
diff options
context:
space:
mode:
authorCre3per <12541974+Cre3per@users.noreply.github.com>2023-03-22 15:15:53 +0100
committerGitHub <noreply@github.com>2023-03-22 10:15:53 -0400
commitfd0658fb429e659b037cbf8b2a86459ce49cb3b3 (patch)
tree7ffa357ebfb18c5cd655677b5cc29c24089ddaa2 /cli/cache/mod.rs
parent50b793c9ed866ee29e8f04b4fa24b485b01a2b74 (diff)
feat(cli): --ext parameter for run, compile, and bundle (#17172)
Adds `--ext` to `deno run`, closes #5088 Additionally - Adds `--ext` to `deno compile` and `deno bundle`
Diffstat (limited to 'cli/cache/mod.rs')
-rw-r--r--cli/cache/mod.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/cli/cache/mod.rs b/cli/cache/mod.rs
index ddb419e54..1aea67058 100644
--- a/cli/cache/mod.rs
+++ b/cli/cache/mod.rs
@@ -11,6 +11,7 @@ use deno_graph::source::LoadFuture;
use deno_graph::source::LoadResponse;
use deno_graph::source::Loader;
use deno_runtime::permissions::PermissionsContainer;
+use std::collections::HashMap;
use std::sync::Arc;
mod check;
@@ -43,6 +44,7 @@ pub struct FetchCacher {
emit_cache: EmitCache,
dynamic_permissions: PermissionsContainer,
file_fetcher: Arc<FileFetcher>,
+ file_header_overrides: HashMap<ModuleSpecifier, HashMap<String, String>>,
root_permissions: PermissionsContainer,
cache_info_enabled: bool,
maybe_local_node_modules_url: Option<ModuleSpecifier>,
@@ -52,6 +54,7 @@ impl FetchCacher {
pub fn new(
emit_cache: EmitCache,
file_fetcher: Arc<FileFetcher>,
+ file_header_overrides: HashMap<ModuleSpecifier, HashMap<String, String>>,
root_permissions: PermissionsContainer,
dynamic_permissions: PermissionsContainer,
maybe_local_node_modules_url: Option<ModuleSpecifier>,
@@ -60,6 +63,7 @@ impl FetchCacher {
emit_cache,
dynamic_permissions,
file_fetcher,
+ file_header_overrides,
root_permissions,
cache_info_enabled: false,
maybe_local_node_modules_url,
@@ -123,6 +127,7 @@ impl Loader for FetchCacher {
self.root_permissions.clone()
};
let file_fetcher = self.file_fetcher.clone();
+ let file_header_overrides = self.file_header_overrides.clone();
let specifier = specifier.clone();
async move {
@@ -130,9 +135,18 @@ impl Loader for FetchCacher {
.fetch(&specifier, permissions)
.await
.map(|file| {
+ let maybe_headers =
+ match (file.maybe_headers, file_header_overrides.get(&specifier)) {
+ (Some(headers), Some(overrides)) => {
+ Some(headers.into_iter().chain(overrides.clone()).collect())
+ }
+ (Some(headers), None) => Some(headers),
+ (None, Some(overrides)) => Some(overrides.clone()),
+ (None, None) => None,
+ };
Ok(Some(LoadResponse::Module {
specifier: file.specifier,
- maybe_headers: file.maybe_headers,
+ maybe_headers,
content: file.source,
}))
})