summaryrefslogtreecommitdiff
path: root/cli/standalone/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/standalone/mod.rs')
-rw-r--r--cli/standalone/mod.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/cli/standalone/mod.rs b/cli/standalone/mod.rs
index 0175b9c11..4049d6709 100644
--- a/cli/standalone/mod.rs
+++ b/cli/standalone/mod.rs
@@ -9,7 +9,6 @@ use crate::args::StorageKeyResolver;
use crate::cache::Caches;
use crate::cache::DenoDirProvider;
use crate::cache::NodeAnalysisCache;
-use crate::file_fetcher::get_source_from_data_url;
use crate::http_util::HttpClient;
use crate::node::CliCjsCodeAnalyzer;
use crate::npm::create_cli_npm_resolver;
@@ -150,12 +149,22 @@ impl ModuleLoader for EmbeddedModuleLoader {
is_dynamic: bool,
_requested_module_type: RequestedModuleType,
) -> deno_core::ModuleLoadResponse {
- let is_data_uri = get_source_from_data_url(original_specifier).ok();
- if let Some((source, _)) = is_data_uri {
+ if original_specifier.scheme() == "data" {
+ let data_url_text =
+ match deno_graph::source::RawDataUrl::parse(original_specifier)
+ .and_then(|url| url.decode().map_err(|err| err.into()))
+ {
+ Ok(response) => response,
+ Err(err) => {
+ return deno_core::ModuleLoadResponse::Sync(Err(type_error(
+ format!("{:#}", err),
+ )));
+ }
+ };
return deno_core::ModuleLoadResponse::Sync(Ok(
deno_core::ModuleSource::new(
deno_core::ModuleType::JavaScript,
- ModuleSourceCode::String(source.into()),
+ ModuleSourceCode::String(data_url_text.into()),
original_specifier,
),
));