pub struct MainWorker {
    pub js_runtime: JsRuntime,
    /* private fields */
}
Expand description

This worker is created and used by almost all subcommands in Deno executable.

It provides ops available in the Deno namespace.

All WebWorkers created during program execution are descendants of this worker.

Fields§

§js_runtime: JsRuntime

Implementations§

source§

impl MainWorker

source

pub fn bootstrap_from_options( main_module: ModuleSpecifier, permissions: PermissionsContainer, options: WorkerOptions ) -> Self

Examples found in repository?
examples/hello_runtime.rs (lines 23-31)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
async fn main() -> Result<(), AnyError> {
  let js_path =
    Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/hello_runtime.js");
  let main_module = ModuleSpecifier::from_file_path(js_path).unwrap();
  let mut worker = MainWorker::bootstrap_from_options(
    main_module.clone(),
    PermissionsContainer::allow_all(),
    WorkerOptions {
      module_loader: Rc::new(FsModuleLoader),
      extensions: vec![hello_runtime::init_ops_and_esm()],
      ..Default::default()
    },
  );
  worker.execute_main_module(&main_module).await?;
  worker.run_event_loop(false).await?;
  Ok(())
}
source

pub fn from_options( main_module: ModuleSpecifier, permissions: PermissionsContainer, options: WorkerOptions ) -> Self

source

pub fn bootstrap(&mut self, options: &BootstrapOptions)

source

pub fn execute_script( &mut self, script_name: &'static str, source_code: ModuleCode ) -> Result<Global<Value>, AnyError>

source

pub async fn preload_main_module( &mut self, module_specifier: &ModuleSpecifier ) -> Result<ModuleId, AnyError>

Loads and instantiates specified JavaScript module as “main” module.

source

pub async fn preload_side_module( &mut self, module_specifier: &ModuleSpecifier ) -> Result<ModuleId, AnyError>

Loads and instantiates specified JavaScript module as “side” module.

source

pub async fn evaluate_module(&mut self, id: ModuleId) -> Result<(), AnyError>

Executes specified JavaScript module.

source

pub async fn execute_side_module( &mut self, module_specifier: &ModuleSpecifier ) -> Result<(), AnyError>

Loads, instantiates and executes specified JavaScript module.

source

pub async fn execute_main_module( &mut self, module_specifier: &ModuleSpecifier ) -> Result<(), AnyError>

Loads, instantiates and executes specified JavaScript module.

This module will have “import.meta.main” equal to true.

Examples found in repository?
examples/hello_runtime.rs (line 32)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
async fn main() -> Result<(), AnyError> {
  let js_path =
    Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/hello_runtime.js");
  let main_module = ModuleSpecifier::from_file_path(js_path).unwrap();
  let mut worker = MainWorker::bootstrap_from_options(
    main_module.clone(),
    PermissionsContainer::allow_all(),
    WorkerOptions {
      module_loader: Rc::new(FsModuleLoader),
      extensions: vec![hello_runtime::init_ops_and_esm()],
      ..Default::default()
    },
  );
  worker.execute_main_module(&main_module).await?;
  worker.run_event_loop(false).await?;
  Ok(())
}
source

pub async fn create_inspector_session(&mut self) -> LocalInspectorSession

Create new inspector session. This function panics if Worker was not configured to create inspector.

source

pub fn poll_event_loop( &mut self, cx: &mut Context<'_>, wait_for_inspector: bool ) -> Poll<Result<(), AnyError>>

source

pub async fn run_event_loop( &mut self, wait_for_inspector: bool ) -> Result<(), AnyError>

Examples found in repository?
examples/hello_runtime.rs (line 33)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
async fn main() -> Result<(), AnyError> {
  let js_path =
    Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/hello_runtime.js");
  let main_module = ModuleSpecifier::from_file_path(js_path).unwrap();
  let mut worker = MainWorker::bootstrap_from_options(
    main_module.clone(),
    PermissionsContainer::allow_all(),
    WorkerOptions {
      module_loader: Rc::new(FsModuleLoader),
      extensions: vec![hello_runtime::init_ops_and_esm()],
      ..Default::default()
    },
  );
  worker.execute_main_module(&main_module).await?;
  worker.run_event_loop(false).await?;
  Ok(())
}
source

pub async fn with_event_loop<'a, T>( &mut self, fut: Pin<Box<dyn Future<Output = T> + 'a>> ) -> T

A utility function that runs provided future concurrently with the event loop.

Useful when using a local inspector session.

source

pub fn exit_code(&self) -> i32

Return exit code set by the executed code (either in main worker or one of child web workers).

source

pub fn dispatch_load_event( &mut self, script_name: &'static str ) -> Result<(), AnyError>

Dispatches “load” event to the JavaScript runtime.

Does not poll event loop, and thus not await any of the “load” event handlers.

source

pub fn dispatch_unload_event( &mut self, script_name: &'static str ) -> Result<(), AnyError>

Dispatches “unload” event to the JavaScript runtime.

Does not poll event loop, and thus not await any of the “unload” event handlers.

source

pub fn dispatch_beforeunload_event( &mut self, script_name: &'static str ) -> Result<bool, AnyError>

Dispatches “beforeunload” event to the JavaScript runtime. Returns a boolean indicating if the event was prevented and thus event loop should continue running.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more