diff options
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 61 |
1 files changed, 38 insertions, 23 deletions
diff --git a/cli/main.rs b/cli/main.rs index 52e3f6e95..758681ecb 100644 --- a/cli/main.rs +++ b/cli/main.rs @@ -82,6 +82,7 @@ use deno_runtime::web_worker::WebWorker; use deno_runtime::web_worker::WebWorkerOptions; use deno_runtime::worker::MainWorker; use deno_runtime::worker::WorkerOptions; +use deno_runtime::BootstrapOptions; use log::debug; use log::info; use std::env; @@ -111,11 +112,21 @@ fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { let create_web_worker_cb = create_web_worker_callback(ps.clone()); let options = WebWorkerOptions { - args: ps.flags.argv.clone(), - apply_source_maps: true, - debug_flag: ps.flags.log_level.map_or(false, |l| l == log::Level::Debug), - unstable: ps.flags.unstable, - enable_testing_features: ps.flags.enable_testing_features, + bootstrap: BootstrapOptions { + args: ps.flags.argv.clone(), + apply_source_maps: true, + cpu_count: num_cpus::get(), + debug_flag: ps + .flags + .log_level + .map_or(false, |l| l == log::Level::Debug), + enable_testing_features: ps.flags.enable_testing_features, + location: Some(args.main_module.clone()), + no_color: !colors::use_color(), + runtime_version: version::deno(), + ts_version: version::TYPESCRIPT.to_string(), + unstable: ps.flags.unstable, + }, unsafely_ignore_certificate_errors: ps .flags .unsafely_ignore_certificate_errors @@ -129,25 +140,26 @@ fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { use_deno_namespace: args.use_deno_namespace, worker_type: args.worker_type, maybe_inspector_server, - runtime_version: version::deno(), - ts_version: version::TYPESCRIPT.to_string(), - no_color: !colors::use_color(), get_error_class_fn: Some(&crate::errors::get_error_class_name), blob_store: ps.blob_store.clone(), broadcast_channel: ps.broadcast_channel.clone(), shared_array_buffer_store: Some(ps.shared_array_buffer_store.clone()), compiled_wasm_module_store: Some(ps.compiled_wasm_module_store.clone()), - cpu_count: num_cpus::get(), }; + let bootstrap_options = options.bootstrap.clone(); + // TODO(@AaronO): switch to bootstrap_from_options() once ops below are an extension + // since it uses sync_ops_cache() which currently depends on the Deno namespace + // which can be nuked when bootstrapping workers (use_deno_namespace: false) let (mut worker, external_handle) = WebWorker::from_options( args.name, args.permissions, args.main_module, args.worker_id, - &options, + options, ); + // TODO(@AaronO): move to a JsRuntime Extension passed into options // This block registers additional ops and state that // are only available in the CLI { @@ -164,7 +176,7 @@ fn create_web_worker_callback(ps: ProcState) -> Arc<CreateWebWorkerCb> { } js_runtime.sync_ops_cache(); } - worker.bootstrap(&options); + worker.bootstrap(&bootstrap_options); (worker, external_handle) }) @@ -192,11 +204,18 @@ pub fn create_main_worker( let create_web_worker_cb = create_web_worker_callback(ps.clone()); let options = WorkerOptions { - apply_source_maps: true, - args: ps.flags.argv.clone(), - debug_flag: ps.flags.log_level.map_or(false, |l| l == log::Level::Debug), - unstable: ps.flags.unstable, - enable_testing_features: ps.flags.enable_testing_features, + bootstrap: BootstrapOptions { + apply_source_maps: true, + args: ps.flags.argv.clone(), + cpu_count: num_cpus::get(), + debug_flag: ps.flags.log_level.map_or(false, |l| l == log::Level::Debug), + enable_testing_features: ps.flags.enable_testing_features, + location: ps.flags.location.clone(), + no_color: !colors::use_color(), + runtime_version: version::deno(), + ts_version: version::TYPESCRIPT.to_string(), + unstable: ps.flags.unstable, + }, unsafely_ignore_certificate_errors: ps .flags .unsafely_ignore_certificate_errors @@ -209,11 +228,7 @@ pub fn create_main_worker( maybe_inspector_server, should_break_on_first_statement, module_loader, - runtime_version: version::deno(), - ts_version: version::TYPESCRIPT.to_string(), - no_color: !colors::use_color(), get_error_class_fn: Some(&crate::errors::get_error_class_name), - location: ps.flags.location.clone(), origin_storage_dir: ps.flags.location.clone().map(|loc| { ps.dir .root @@ -226,11 +241,12 @@ pub fn create_main_worker( broadcast_channel: ps.broadcast_channel.clone(), shared_array_buffer_store: Some(ps.shared_array_buffer_store.clone()), compiled_wasm_module_store: Some(ps.compiled_wasm_module_store.clone()), - cpu_count: num_cpus::get(), }; - let mut worker = MainWorker::from_options(main_module, permissions, &options); + let mut worker = + MainWorker::bootstrap_from_options(main_module, permissions, options); + // TODO(@AaronO): move to a JsRuntime Extension passed into options // This block registers additional ops and state that // are only available in the CLI { @@ -250,7 +266,6 @@ pub fn create_main_worker( js_runtime.sync_ops_cache(); } - worker.bootstrap(&options); worker } |