summaryrefslogtreecommitdiff
path: root/cli/ops.rs
diff options
context:
space:
mode:
authorandy finch <andyfinch7@gmail.com>2019-08-08 17:38:53 -0400
committerRyan Dahl <ry@tinyclouds.org>2019-08-08 14:38:53 -0700
commit56a82e72d9867a9b5f8a10bc8e4b81b86cd815c9 (patch)
tree5780460a81c6b4d748b91d96493e2ee9ed13addc /cli/ops.rs
parent520bdb6c31dd08b6f4e52de5116fd23d6d57fdda (diff)
Resolve worker specifiers relative to main module of host. (#2751)
Diffstat (limited to 'cli/ops.rs')
-rw-r--r--cli/ops.rs16
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)));