diff options
author | andy finch <andyfinch7@gmail.com> | 2019-08-08 17:38:53 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-08 14:38:53 -0700 |
commit | 56a82e72d9867a9b5f8a10bc8e4b81b86cd815c9 (patch) | |
tree | 5780460a81c6b4d748b91d96493e2ee9ed13addc /cli/ops.rs | |
parent | 520bdb6c31dd08b6f4e52de5116fd23d6d57fdda (diff) |
Resolve worker specifiers relative to main module of host. (#2751)
Diffstat (limited to 'cli/ops.rs')
-rw-r--r-- | cli/ops.rs | 16 |
1 files changed, 13 insertions, 3 deletions
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))); |