ModuleLoader

Trait ModuleLoader 

Source
pub trait ModuleLoader {
    // Required methods
    fn resolve<'cx>(
        &mut self,
        cx: &'cx Context,
        private: &Value<'_>,
        request: &ModuleRequest<'_>,
    ) -> Result<Module<'cx>>;
    fn register(
        &mut self,
        cx: &Context,
        module: *mut JSObject,
        request: &ModuleRequest<'_>,
    ) -> Result<()>;
    fn metadata(
        &self,
        cx: &Context,
        private: &Value<'_>,
        meta: &Object<'_>,
    ) -> Result<()>;
}
Expand description

Represents an ES module loader.

Required Methods§

Source

fn resolve<'cx>( &mut self, cx: &'cx Context, private: &Value<'_>, request: &ModuleRequest<'_>, ) -> Result<Module<'cx>>

Given a request and private data of a module, resolves the request into a compiled module object. Should return the same module object for a given request.

Source

fn register( &mut self, cx: &Context, module: *mut JSObject, request: &ModuleRequest<'_>, ) -> Result<()>

Registers a new module in the module registry. Useful for native modules.

Source

fn metadata( &self, cx: &Context, private: &Value<'_>, meta: &Object<'_>, ) -> Result<()>

Returns metadata of a module, used to populate import.meta.

Implementations on Foreign Types§

Source§

impl ModuleLoader for ()

Source§

fn resolve<'cx>( &mut self, _: &'cx Context, _: &Value<'_>, _: &ModuleRequest<'_>, ) -> Result<Module<'cx>>

Source§

fn register( &mut self, _: &Context, _: *mut JSObject, _: &ModuleRequest<'_>, ) -> Result<()>

Source§

fn metadata(&self, _: &Context, _: &Value<'_>, _: &Object<'_>) -> Result<()>

Implementors§