mirror of
https://github.com/lexmount/moli.git
synced 2026-09-28 08:01:37 +00:00
45 lines
1.4 KiB
Rust
45 lines
1.4 KiB
Rust
use url::Url;
|
|
|
|
use crate::types::{
|
|
CompiledModuleSnapshot, FetchedModuleSource, ModuleAttributesKey, ModuleDependencyEdge,
|
|
ModuleDependencySnapshot, ModuleEntryId, ModuleFetchRequest, ModuleGraphHandle,
|
|
ModuleLoadError, ModuleMapKey, ResolvedModuleRequest, SingleModuleClientToken,
|
|
SingleModuleFetchDisposition,
|
|
};
|
|
|
|
pub trait ModuleScriptTreeHost {
|
|
fn resolve_module_request(
|
|
&mut self,
|
|
specifier: &str,
|
|
base_url: &Url,
|
|
attributes: &ModuleAttributesKey,
|
|
requested_phase: crate::ModuleImportPhase,
|
|
) -> Result<ResolvedModuleRequest, ModuleLoadError>;
|
|
|
|
fn start_or_join_single_module_fetch(
|
|
&mut self,
|
|
request: ModuleFetchRequest,
|
|
client: SingleModuleClientToken,
|
|
) -> SingleModuleFetchDisposition;
|
|
|
|
fn compile_module_source(
|
|
&mut self,
|
|
fetched_source: FetchedModuleSource,
|
|
phase: crate::ModuleImportPhase,
|
|
) -> Result<CompiledModuleSnapshot, ModuleLoadError>;
|
|
|
|
fn module_dependencies(
|
|
&self,
|
|
entry: ModuleEntryId,
|
|
) -> Result<ModuleDependencySnapshot, ModuleLoadError>;
|
|
|
|
fn link_module_graph(
|
|
&mut self,
|
|
root: ModuleEntryId,
|
|
entries: &[ModuleEntryId],
|
|
dependency_edges: &[ModuleDependencyEdge],
|
|
) -> Result<ModuleGraphHandle, ModuleLoadError>;
|
|
|
|
fn mark_module_failed(&mut self, key: ModuleMapKey, error: ModuleLoadError) -> ModuleEntryId;
|
|
}
|