From 658ec2aaf9c7e0d0b4ded4e97a3d89dc2fa25806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Mon, 25 Nov 2019 15:33:23 +0100 Subject: better error message for missing module (#3402) --- core/modules.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'core') diff --git a/core/modules.rs b/core/modules.rs index 9f3434a4f..dd45f554d 100644 --- a/core/modules.rs +++ b/core/modules.rs @@ -48,6 +48,7 @@ pub trait Loader: Send + Sync { fn load( &self, module_specifier: &ModuleSpecifier, + maybe_referrer: Option, ) -> Pin>; } @@ -154,7 +155,7 @@ impl RecursiveLoad { // integrated into one thing. self .pending - .push(self.loader.load(&module_specifier).boxed()); + .push(self.loader.load(&module_specifier, None).boxed()); self.state = State::LoadingRoot; Ok(()) @@ -166,6 +167,8 @@ impl RecursiveLoad { referrer: &str, parent_id: deno_mod, ) -> Result<(), ErrBox> { + let referrer_specifier = ModuleSpecifier::resolve_url(referrer) + .expect("Referrer should be a valid specifier"); let module_specifier = self.loader.resolve( specifier, referrer, @@ -181,9 +184,10 @@ impl RecursiveLoad { if !modules.is_registered(module_name) && !self.is_pending.contains(&module_specifier) { - self - .pending - .push(self.loader.load(&module_specifier).boxed()); + let fut = self + .loader + .load(&module_specifier, Some(referrer_specifier.clone())); + self.pending.push(fut.boxed()); self.is_pending.insert(module_specifier); } @@ -739,6 +743,7 @@ mod tests { fn load( &self, module_specifier: &ModuleSpecifier, + _maybe_referrer: Option, ) -> Pin> { let mut loads = self.loads.lock().unwrap(); loads.push(module_specifier.to_string()); -- cgit v1.2.3