Struct deno_core::RuntimeOptions
source · pub struct RuntimeOptions {Show 21 fields
pub source_map_getter: Option<Rc<dyn SourceMapGetter>>,
pub get_error_class_fn: Option<GetErrorClassFn>,
pub module_loader: Option<Rc<dyn ModuleLoader>>,
pub extension_transpiler: Option<Rc<dyn Fn(ModuleName, ModuleCodeString) -> Result<(ModuleCodeString, Option<SourceMapData>), AnyError>>>,
pub op_metrics_factory_fn: Option<OpMetricsFactoryFn>,
pub extensions: Vec<Extension>,
pub startup_snapshot: Option<&'static [u8]>,
pub skip_op_registration: bool,
pub create_params: Option<CreateParams>,
pub v8_platform: Option<SharedRef<Platform>>,
pub shared_array_buffer_store: Option<SharedArrayBufferStore>,
pub compiled_wasm_module_store: Option<CompiledWasmModuleStore>,
pub inspector: bool,
pub is_main: bool,
pub feature_checker: Option<Arc<FeatureChecker>>,
pub validate_import_attributes_cb: Option<ValidateImportAttributesCb>,
pub import_meta_resolve_callback: Option<Box<dyn Fn(&dyn ModuleLoader, String, String) -> Result<ModuleSpecifier, Error>>>,
pub wait_for_inspector_disconnect_callback: Option<Box<dyn Fn()>>,
pub custom_module_evaluation_cb: Option<Box<dyn Fn(&mut HandleScope<'_>, Cow<'_, str>, &FastString, ModuleSourceCode) -> Result<CustomModuleEvaluationKind, AnyError>>>,
pub enable_code_cache: bool,
pub eval_context_code_cache_cbs: Option<(Box<dyn Fn(&str) -> Result<Option<Cow<'static, [u8]>>, AnyError>>, Box<dyn Fn(&str, &[u8])>)>,
}
Fields§
§source_map_getter: Option<Rc<dyn SourceMapGetter>>
Source map reference for errors.
get_error_class_fn: Option<GetErrorClassFn>
Allows to map error type to a string “class” used to represent error in JavaScript.
module_loader: Option<Rc<dyn ModuleLoader>>
Implementation of ModuleLoader
which will be
called when V8 requests to load ES modules in the main realm.
If not provided runtime will error if code being executed tries to load modules.
extension_transpiler: Option<Rc<dyn Fn(ModuleName, ModuleCodeString) -> Result<(ModuleCodeString, Option<SourceMapData>), AnyError>>>
If specified, transpiles extensions before loading.
op_metrics_factory_fn: Option<OpMetricsFactoryFn>
Provide a function that may optionally provide a metrics collector for a given op.
extensions: Vec<Extension>
JsRuntime extensions, not to be confused with ES modules.
Only ops registered by extensions will be initialized. If you need
to execute JS code from extensions, pass source files in js
or esm
option on ExtensionBuilder
.
If you are creating a runtime from a snapshot take care not to include JavaScript sources in the extensions.
startup_snapshot: Option<&'static [u8]>
V8 snapshot that should be loaded on startup.
For testing, use runtime.snapshot()
and then Box::leak
to acquire
skip_op_registration: bool
Should op registration be skipped?
create_params: Option<CreateParams>
Isolate creation parameters.
v8_platform: Option<SharedRef<Platform>>
V8 platform instance to use. Used when Deno initializes V8 (which it only does once), otherwise it’s silently dropped.
The store to use for transferring SharedArrayBuffers between isolates. If multiple isolates should have the possibility of sharing SharedArrayBuffers, they should use the same SharedArrayBufferStore. If no SharedArrayBufferStore is specified, SharedArrayBuffer can not be serialized.
compiled_wasm_module_store: Option<CompiledWasmModuleStore>
The store to use for transferring WebAssembly.Module
objects between
isolates.
If multiple isolates should have the possibility of sharing
WebAssembly.Module
objects, they should use the same
CompiledWasmModuleStore. If no CompiledWasmModuleStore is specified,
WebAssembly.Module
objects cannot be serialized.
inspector: bool
Start inspector instance to allow debuggers to connect.
is_main: bool
Describe if this is the main runtime instance, used by debuggers in some situation - like disconnecting when program finishes running.
feature_checker: Option<Arc<FeatureChecker>>
An optional instance of FeatureChecker
. If one is not provided, the
default instance will be created that has no features enabled.
validate_import_attributes_cb: Option<ValidateImportAttributesCb>
A callback that can be used to validate import attributes received at the import site. If no callback is provided, all attributes are allowed.
Embedders might use this callback to eg. validate value of “type” attribute, not allowing other types than “JSON”.
To signal validation failure, users should throw an V8 exception inside the callback.
import_meta_resolve_callback: Option<Box<dyn Fn(&dyn ModuleLoader, String, String) -> Result<ModuleSpecifier, Error>>>
A callback that can be used to customize behavior of
import.meta.resolve()
API. If no callback is provided, a default one
is used. The default callback returns value of
RuntimeOptions::module_loader::resolve()
call.
wait_for_inspector_disconnect_callback: Option<Box<dyn Fn()>>
A callback that is called when the event loop has no more work to do, but there are active, non-blocking inspector session (eg. Chrome DevTools inspector is connected). The embedder can use this callback to eg. print a message notifying user about program finished running. This callback can be called multiple times, eg. after the program finishes more work can be scheduled from the DevTools.
custom_module_evaluation_cb: Option<Box<dyn Fn(&mut HandleScope<'_>, Cow<'_, str>, &FastString, ModuleSourceCode) -> Result<CustomModuleEvaluationKind, AnyError>>>
A callback that allows to evaluate a custom type of a module - eg. embedders might implement loading WASM or test modules.
enable_code_cache: bool
§eval_context_code_cache_cbs: Option<(Box<dyn Fn(&str) -> Result<Option<Cow<'static, [u8]>>, AnyError>>, Box<dyn Fn(&str, &[u8])>)>
Callbacks to retrieve and store code cache for scripts evaluated through evalContext.
Trait Implementations§
source§impl Default for RuntimeOptions
impl Default for RuntimeOptions
source§fn default() -> RuntimeOptions
fn default() -> RuntimeOptions
Auto Trait Implementations§
impl Freeze for RuntimeOptions
impl !RefUnwindSafe for RuntimeOptions
impl !Send for RuntimeOptions
impl !Sync for RuntimeOptions
impl Unpin for RuntimeOptions
impl !UnwindSafe for RuntimeOptions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.