summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/main.rs61
-rw-r--r--cli/standalone.rs32
2 files changed, 57 insertions, 36 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
}
diff --git a/cli/standalone.rs b/cli/standalone.rs
index 914eeaddf..2e4704ea9 100644
--- a/cli/standalone.rs
+++ b/cli/standalone.rs
@@ -26,6 +26,7 @@ use deno_runtime::permissions::Permissions;
use deno_runtime::permissions::PermissionsOptions;
use deno_runtime::worker::MainWorker;
use deno_runtime::worker::WorkerOptions;
+use deno_runtime::BootstrapOptions;
use deno_tls::create_default_root_cert_store;
use log::Level;
use std::convert::TryInto;
@@ -228,12 +229,19 @@ pub async fn run(
}
let options = WorkerOptions {
- apply_source_maps: false,
- args: metadata.argv,
- debug_flag: metadata.log_level.map_or(false, |l| l == log::Level::Debug),
+ bootstrap: BootstrapOptions {
+ apply_source_maps: false,
+ args: metadata.argv,
+ cpu_count: num_cpus::get(),
+ debug_flag: metadata.log_level.map_or(false, |l| l == log::Level::Debug),
+ enable_testing_features: false,
+ location: metadata.location,
+ no_color: !colors::use_color(),
+ runtime_version: version::deno(),
+ ts_version: version::TYPESCRIPT.to_string(),
+ unstable: metadata.unstable,
+ },
user_agent: version::get_user_agent(),
- unstable: metadata.unstable,
- enable_testing_features: false,
unsafely_ignore_certificate_errors: metadata
.unsafely_ignore_certificate_errors,
root_cert_store: Some(root_cert_store),
@@ -243,20 +251,19 @@ pub async fn run(
maybe_inspector_server: None,
should_break_on_first_statement: false,
module_loader,
- runtime_version: version::deno(),
- ts_version: version::TYPESCRIPT.to_string(),
- no_color: !colors::use_color(),
get_error_class_fn: Some(&get_error_class_name),
- location: metadata.location,
origin_storage_dir: None,
blob_store,
broadcast_channel,
shared_array_buffer_store: None,
compiled_wasm_module_store: None,
- cpu_count: num_cpus::get(),
};
- let mut worker =
- MainWorker::from_options(main_module.clone(), permissions, &options);
+ let mut worker = MainWorker::bootstrap_from_options(
+ main_module.clone(),
+ permissions,
+ options,
+ );
+ // TODO(@AaronO): move to a JsRuntime Extension passed into options
{
let js_runtime = &mut worker.js_runtime;
js_runtime
@@ -267,7 +274,6 @@ pub async fn run(
ops::runtime_compiler::init(js_runtime);
js_runtime.sync_ops_cache();
}
- worker.bootstrap(&options);
worker.execute_main_module(&main_module).await?;
worker.execute_script(
&located_script_name!(),