From 56a82e72d9867a9b5f8a10bc8e4b81b86cd815c9 Mon Sep 17 00:00:00 2001 From: andy finch Date: Thu, 8 Aug 2019 17:38:53 -0400 Subject: Resolve worker specifiers relative to main module of host. (#2751) --- cli/ops.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'cli') diff --git a/cli/ops.rs b/cli/ops.rs index d75e7bd20..d5da90567 100644 --- a/cli/ops.rs +++ b/cli/ops.rs @@ -2095,9 +2095,21 @@ fn op_create_worker( let parent_state = state.clone(); + let mut module_specifier = ModuleSpecifier::resolve_url_or_path(specifier)?; + + let mut child_argv = parent_state.argv.clone(); + + if !has_source_code { + if let Some(module) = state.main_module() { + module_specifier = + ModuleSpecifier::resolve_import(specifier, &module.to_string())?; + child_argv[1] = module_specifier.to_string(); + } + } + let child_state = ThreadSafeState::new( parent_state.flags.clone(), - parent_state.argv.clone(), + child_argv, op_selector_std, parent_state.progress.clone(), include_deno_namespace, @@ -2134,8 +2146,6 @@ fn op_create_worker( return ok_buf(exec_cb(worker)); } - let module_specifier = ModuleSpecifier::resolve_url_or_path(specifier)?; - let op = worker .execute_mod_async(&module_specifier, false) .and_then(move |()| Ok(exec_cb(worker))); -- cgit v1.2.3