deno.land / x / deno@v1.28.2 / runtime / examples / hello_runtime.rs

hello_runtime.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use deno_core::error::AnyError;use deno_core::FsModuleLoader;use deno_runtime::deno_broadcast_channel::InMemoryBroadcastChannel;use deno_runtime::deno_web::BlobStore;use deno_runtime::permissions::Permissions;use deno_runtime::worker::MainWorker;use deno_runtime::worker::WorkerOptions;use deno_runtime::BootstrapOptions;use std::path::Path;use std::rc::Rc;use std::sync::Arc;
fn get_error_class_name(e: &AnyError) -> &'static str { deno_runtime::errors::get_error_class_name(e).unwrap_or("Error")}
#[tokio::main]async fn main() -> Result<(), AnyError> { let module_loader = Rc::new(FsModuleLoader); let create_web_worker_cb = Arc::new(|_| { todo!("Web workers are not supported in the example"); }); let web_worker_event_cb = Arc::new(|_| { todo!("Web workers are not supported in the example"); });
let options = WorkerOptions { bootstrap: BootstrapOptions { args: vec![], cpu_count: 1, debug_flag: false, enable_testing_features: false, locale: deno_core::v8::icu::get_language_tag(), location: None, no_color: false, is_tty: false, runtime_version: "x".to_string(), ts_version: "x".to_string(), unstable: false, user_agent: "hello_runtime".to_string(), inspect: false, }, extensions: vec![], startup_snapshot: None, unsafely_ignore_certificate_errors: None, root_cert_store: None, seed: None, source_map_getter: None, format_js_error_fn: None, web_worker_preload_module_cb: web_worker_event_cb.clone(), web_worker_pre_execute_module_cb: web_worker_event_cb, create_web_worker_cb, maybe_inspector_server: None, should_break_on_first_statement: false, module_loader, npm_resolver: None, get_error_class_fn: Some(&get_error_class_name), cache_storage_dir: None, origin_storage_dir: None, blob_store: BlobStore::default(), broadcast_channel: InMemoryBroadcastChannel::default(), shared_array_buffer_store: None, compiled_wasm_module_store: None, stdio: Default::default(), };
let js_path = Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/hello_runtime.js"); let main_module = deno_core::resolve_path(&js_path.to_string_lossy())?; let permissions = Permissions::allow_all();
let mut worker = MainWorker::bootstrap_from_options( main_module.clone(), permissions, options, ); worker.execute_main_module(&main_module).await?; worker.run_event_loop(false).await?; Ok(())}
deno

Version Info

Tagged at
a year ago