diff options
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 68 |
1 files changed, 50 insertions, 18 deletions
diff --git a/cli/main.rs b/cli/main.rs index aa144d1de..db99d4e4e 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -124,6 +124,7 @@ fn create_web_worker_callback( no_color: !colors::use_color(), get_error_class_fn: Some(&crate::errors::get_error_class_name), blob_url_store: program_state.blob_url_store.clone(), + broadcast_channel: program_state.broadcast_channel.clone(), }; let mut worker = WebWorker::from_options( @@ -203,15 +204,17 @@ pub fn create_main_worker( no_color: !colors::use_color(), get_error_class_fn: Some(&crate::errors::get_error_class_name), location: program_state.flags.location.clone(), - location_data_dir: program_state.flags.location.clone().map(|loc| { + origin_storage_dir: program_state.flags.location.clone().map(|loc| { program_state .dir .root .clone() + // TODO(@crowlKats): change to origin_data for 2.0 .join("location_data") .join(checksum::gen(&[loc.to_string().as_bytes()])) }), blob_url_store: program_state.blob_url_store.clone(), + broadcast_channel: program_state.broadcast_channel.clone(), }; let mut worker = MainWorker::from_options(main_module, permissions, &options); @@ -265,19 +268,34 @@ where fn print_cache_info( state: &Arc<ProgramState>, json: bool, + location: Option<deno_core::url::Url>, ) -> Result<(), AnyError> { let deno_dir = &state.dir.root; let modules_cache = &state.file_fetcher.get_http_cache_location(); let typescript_cache = &state.dir.gen_cache.location; let registry_cache = &state.dir.root.join(lsp::language_server::REGISTRIES_PATH); + let mut origin_dir = state.dir.root.join("location_data"); + + if let Some(location) = &location { + origin_dir = + origin_dir.join(&checksum::gen(&[location.to_string().as_bytes()])); + } + if json { - let output = json!({ - "denoDir": deno_dir, - "modulesCache": modules_cache, - "typescriptCache": typescript_cache, - "registryCache": registry_cache, + let mut output = json!({ + "denoDir": deno_dir, + "modulesCache": modules_cache, + "typescriptCache": typescript_cache, + "registryCache": registry_cache, + "originStorage": origin_dir, }); + + if location.is_some() { + output["localStorage"] = + serde_json::to_value(origin_dir.join("local_storage"))?; + } + write_json_to_stdout(&output) } else { println!("{} {:?}", colors::bold("DENO_DIR location:"), deno_dir); @@ -296,13 +314,21 @@ fn print_cache_info( colors::bold("Language server registries cache:"), registry_cache, ); + println!("{} {:?}", colors::bold("Origin storage:"), origin_dir); + if location.is_some() { + println!( + "{} {:?}", + colors::bold("Local Storage:"), + origin_dir.join("local_storage"), + ); + } Ok(()) } } pub fn get_types(unstable: bool) -> String { let mut types = format!( - "{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}", + "{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}", crate::tsc::DENO_NS_LIB, crate::tsc::DENO_CONSOLE_LIB, crate::tsc::DENO_URL_LIB, @@ -313,6 +339,7 @@ pub fn get_types(unstable: bool) -> String { crate::tsc::DENO_WEBSOCKET_LIB, crate::tsc::DENO_WEBSTORAGE_LIB, crate::tsc::DENO_CRYPTO_LIB, + crate::tsc::DENO_BROADCAST_CHANNEL_LIB, crate::tsc::SHARED_GLOBALS_LIB, crate::tsc::WINDOW_LIB, ); @@ -390,6 +417,7 @@ async fn info_command( maybe_specifier: Option<String>, json: bool, ) -> Result<(), AnyError> { + let location = flags.location.clone(); let program_state = ProgramState::build(flags).await?; if let Some(specifier) = maybe_specifier { let specifier = resolve_url_or_path(&specifier)?; @@ -417,7 +445,7 @@ async fn info_command( } } else { // If it was just "deno info" print location of caches and exit - print_cache_info(&program_state, json) + print_cache_info(&program_state, json, location) } } @@ -531,7 +559,7 @@ async fn eval_command( debug!("main_module {}", &main_module); worker.execute_module(&main_module).await?; worker.execute("window.dispatchEvent(new Event('load'))")?; - worker.run_event_loop().await?; + worker.run_event_loop(false).await?; worker.execute("window.dispatchEvent(new Event('unload'))")?; Ok(()) } @@ -734,7 +762,7 @@ async fn run_repl(flags: Flags) -> Result<(), AnyError> { let program_state = ProgramState::build(flags).await?; let mut worker = create_main_worker(&program_state, main_module.clone(), permissions, false); - worker.run_event_loop().await?; + worker.run_event_loop(false).await?; tools::repl::run(&program_state, worker).await } @@ -767,7 +795,7 @@ async fn run_from_stdin(flags: Flags) -> Result<(), AnyError> { debug!("main_module {}", main_module); worker.execute_module(&main_module).await?; worker.execute("window.dispatchEvent(new Event('load'))")?; - worker.run_event_loop().await?; + worker.run_event_loop(false).await?; worker.execute("window.dispatchEvent(new Event('unload'))")?; Ok(()) } @@ -836,7 +864,7 @@ async fn run_with_watch(flags: Flags, script: String) -> Result<(), AnyError> { debug!("main_module {}", main_module); worker.execute_module(&main_module).await?; worker.execute("window.dispatchEvent(new Event('load'))")?; - worker.run_event_loop().await?; + worker.run_event_loop(false).await?; worker.execute("window.dispatchEvent(new Event('unload'))")?; Ok(()) } @@ -863,13 +891,14 @@ async fn run_command(flags: Flags, script: String) -> Result<(), AnyError> { let mut maybe_coverage_collector = if let Some(ref coverage_dir) = program_state.coverage_dir { - let session = worker.create_inspector_session(); + let session = worker.create_inspector_session().await; let coverage_dir = PathBuf::from(coverage_dir); let mut coverage_collector = tools::coverage::CoverageCollector::new(coverage_dir, session); - coverage_collector.start_collecting().await?; - + worker + .with_event_loop(coverage_collector.start_collecting().boxed_local()) + .await?; Some(coverage_collector) } else { None @@ -878,13 +907,16 @@ async fn run_command(flags: Flags, script: String) -> Result<(), AnyError> { debug!("main_module {}", main_module); worker.execute_module(&main_module).await?; worker.execute("window.dispatchEvent(new Event('load'))")?; - worker.run_event_loop().await?; + worker + .run_event_loop(maybe_coverage_collector.is_none()) + .await?; worker.execute("window.dispatchEvent(new Event('unload'))")?; if let Some(coverage_collector) = maybe_coverage_collector.as_mut() { - coverage_collector.stop_collecting().await?; + worker + .with_event_loop(coverage_collector.stop_collecting().boxed_local()) + .await?; } - Ok(()) } |