summaryrefslogtreecommitdiff
path: root/cli/tools/run.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/run.rs')
-rw-r--r--cli/tools/run.rs38
1 files changed, 22 insertions, 16 deletions
diff --git a/cli/tools/run.rs b/cli/tools/run.rs
index 7f4b5c8f7..6515ebde6 100644
--- a/cli/tools/run.rs
+++ b/cli/tools/run.rs
@@ -13,7 +13,6 @@ use crate::args::Flags;
use crate::file_fetcher::File;
use crate::proc_state::ProcState;
use crate::util;
-use crate::worker::create_main_worker;
pub async fn run_script(flags: Flags) -> Result<i32, AnyError> {
if !flags.has_permission() && flags.has_permission_in_argv() {
@@ -48,7 +47,10 @@ To grant permissions, set them before the script argument. For example:
let permissions = PermissionsContainer::new(Permissions::from_options(
&ps.options.permissions_options(),
)?);
- let mut worker = create_main_worker(&ps, main_module, permissions).await?;
+ let worker_factory = ps.into_cli_main_worker_factory();
+ let mut worker = worker_factory
+ .create_main_worker(main_module, permissions)
+ .await?;
let exit_code = worker.run().await?;
Ok(exit_code)
@@ -58,15 +60,9 @@ pub async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> {
let ps = ProcState::from_flags(flags).await?;
let main_module = ps.options.resolve_main_module()?;
- let mut worker = create_main_worker(
- &ps,
- main_module.clone(),
- PermissionsContainer::new(Permissions::from_options(
- &ps.options.permissions_options(),
- )?),
- )
- .await?;
-
+ let permissions = PermissionsContainer::new(Permissions::from_options(
+ &ps.options.permissions_options(),
+ )?);
let mut source = Vec::new();
std::io::stdin().read_to_end(&mut source)?;
// Create a dummy source file.
@@ -75,13 +71,17 @@ pub async fn run_from_stdin(flags: Flags) -> Result<i32, AnyError> {
maybe_types: None,
media_type: MediaType::TypeScript,
source: String::from_utf8(source)?.into(),
- specifier: main_module,
+ specifier: main_module.clone(),
maybe_headers: None,
};
// Save our fake file into file fetcher cache
// to allow module access by TS compiler
ps.file_fetcher.insert_cached(source_file);
+ let worker_factory = ps.into_cli_main_worker_factory();
+ let mut worker = worker_factory
+ .create_main_worker(main_module, permissions)
+ .await?;
let exit_code = worker.run().await?;
Ok(exit_code)
}
@@ -102,7 +102,10 @@ async fn run_with_watch(flags: Flags) -> Result<i32, AnyError> {
let permissions = PermissionsContainer::new(Permissions::from_options(
&ps.options.permissions_options(),
)?);
- let worker = create_main_worker(&ps, main_module, permissions).await?;
+ let worker_factory = ps.into_cli_main_worker_factory();
+ let worker = worker_factory
+ .create_main_worker(main_module, permissions)
+ .await?;
worker.run_for_watcher().await?;
Ok(())
@@ -132,8 +135,6 @@ pub async fn eval_command(
let permissions = PermissionsContainer::new(Permissions::from_options(
&ps.options.permissions_options(),
)?);
- let mut worker =
- create_main_worker(&ps, main_module.clone(), permissions).await?;
// Create a dummy source file.
let source_code = if eval_flags.print {
format!("console.log({})", eval_flags.code)
@@ -147,13 +148,18 @@ pub async fn eval_command(
maybe_types: None,
media_type: MediaType::Unknown,
source: String::from_utf8(source_code)?.into(),
- specifier: main_module,
+ specifier: main_module.clone(),
maybe_headers: None,
};
// Save our fake file into file fetcher cache
// to allow module access by TS compiler.
ps.file_fetcher.insert_cached(file);
+
+ let mut worker = ps
+ .into_cli_main_worker_factory()
+ .create_main_worker(main_module, permissions)
+ .await?;
let exit_code = worker.run().await?;
Ok(exit_code)
}