diff options
Diffstat (limited to 'core/modules.rs')
-rw-r--r-- | core/modules.rs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/core/modules.rs b/core/modules.rs index 294bcfb05..235bfeb4e 100644 --- a/core/modules.rs +++ b/core/modules.rs @@ -65,6 +65,7 @@ pub trait ModuleLoader { /// apply import map for child imports. fn resolve( &self, + op_state: Rc<RefCell<OpState>>, specifier: &str, referrer: &str, _is_main: bool, @@ -109,6 +110,7 @@ pub(crate) struct NoopModuleLoader; impl ModuleLoader for NoopModuleLoader { fn resolve( &self, + _op_state: Rc<RefCell<OpState>>, _specifier: &str, _referrer: &str, _is_main: bool, @@ -207,14 +209,23 @@ impl RecursiveModuleLoad { pub async fn prepare(self) -> (ModuleLoadId, Result<Self, AnyError>) { let (module_specifier, maybe_referrer) = match self.state { LoadState::ResolveMain(ref specifier, _) => { - let spec = match self.loader.resolve(specifier, ".", true) { - Ok(spec) => spec, - Err(e) => return (self.id, Err(e)), - }; + let spec = + match self + .loader + .resolve(self.op_state.clone(), specifier, ".", true) + { + Ok(spec) => spec, + Err(e) => return (self.id, Err(e)), + }; (spec, None) } LoadState::ResolveImport(ref specifier, ref referrer) => { - let spec = match self.loader.resolve(specifier, referrer, false) { + let spec = match self.loader.resolve( + self.op_state.clone(), + specifier, + referrer, + false, + ) { Ok(spec) => spec, Err(e) => return (self.id, Err(e)), }; @@ -243,11 +254,13 @@ impl RecursiveModuleLoad { fn add_root(&mut self) -> Result<(), AnyError> { let module_specifier = match self.state { LoadState::ResolveMain(ref specifier, _) => { - self.loader.resolve(specifier, ".", true)? - } - LoadState::ResolveImport(ref specifier, ref referrer) => { - self.loader.resolve(specifier, referrer, false)? + self + .loader + .resolve(self.op_state.clone(), specifier, ".", true)? } + LoadState::ResolveImport(ref specifier, ref referrer) => self + .loader + .resolve(self.op_state.clone(), specifier, referrer, false)?, _ => unreachable!(), }; @@ -571,6 +584,7 @@ mod tests { impl ModuleLoader for MockLoader { fn resolve( &self, + _op_state: Rc<RefCell<OpState>>, specifier: &str, referrer: &str, _is_root: bool, |