summaryrefslogtreecommitdiff
path: root/cli/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/main.rs')
-rw-r--r--cli/main.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/cli/main.rs b/cli/main.rs
index f888a6c6c..4546bc374 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -63,6 +63,7 @@ use crate::file_fetcher::SourceFileFetcher;
use crate::file_fetcher::TextDocument;
use crate::fs as deno_fs;
use crate::global_state::GlobalState;
+use crate::inspector::InspectorSession;
use crate::media_type::MediaType;
use crate::permissions::Permissions;
use crate::worker::MainWorker;
@@ -428,9 +429,26 @@ async fn run_repl(flags: Flags) -> Result<(), AnyError> {
let main_module =
ModuleSpecifier::resolve_url_or_path("./$deno$repl.ts").unwrap();
let global_state = GlobalState::new(flags)?;
- let mut worker = MainWorker::new(&global_state, main_module);
+ let mut worker = MainWorker::new(&global_state, main_module.clone());
+ (&mut *worker).await?;
+
+ let inspector = worker
+ .inspector
+ .as_mut()
+ .expect("Inspector is not created.");
+
+ let inspector_session = InspectorSession::new(&mut **inspector);
+ let repl = repl::run(&global_state, inspector_session);
+
+ tokio::pin!(repl);
+
loop {
- (&mut *worker).await?;
+ tokio::select! {
+ result = &mut repl => {
+ return result;
+ }
+ _ = &mut *worker => {}
+ }
}
}