diff options
Diffstat (limited to 'core/examples/ts_module_loader.rs')
-rw-r--r-- | core/examples/ts_module_loader.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/core/examples/ts_module_loader.rs b/core/examples/ts_module_loader.rs index 4a38073ab..6adb27977 100644 --- a/core/examples/ts_module_loader.rs +++ b/core/examples/ts_module_loader.rs @@ -14,6 +14,7 @@ use anyhow::Error; use deno_ast::MediaType; use deno_ast::ParseParams; use deno_ast::SourceTextInfo; +use deno_core::error::AnyError; use deno_core::resolve_import; use deno_core::resolve_path; use deno_core::JsRuntime; @@ -41,11 +42,12 @@ impl ModuleLoader for TypescriptModuleLoader { fn load( &self, module_specifier: &ModuleSpecifier, - _maybe_referrer: Option<ModuleSpecifier>, + _maybe_referrer: Option<&ModuleSpecifier>, _is_dyn_import: bool, ) -> Pin<Box<ModuleSourceFuture>> { - let module_specifier = module_specifier.clone(); - async move { + fn load( + module_specifier: &ModuleSpecifier, + ) -> Result<ModuleSource, AnyError> { let path = module_specifier .to_file_path() .map_err(|_| anyhow!("Only file:// URLs are supported."))?; @@ -81,15 +83,14 @@ impl ModuleLoader for TypescriptModuleLoader { } else { code }; - let module = ModuleSource { - code: code.into(), + Ok(ModuleSource::new( module_type, - module_url_specified: module_specifier.to_string(), - module_url_found: module_specifier.to_string(), - }; - Ok(module) + code.into(), + module_specifier, + )) } - .boxed_local() + + futures::future::ready(load(module_specifier)).boxed_local() } } |