use std::{pin::Pin, sync::Arc};
pub type ResolveDependenciesFn = dyn Fn(
&str,
Vec<String>,
&str,
&str,
) -> Pin<Box<dyn Future<Output = anyhow::Result<Vec<String>>> + Send>>
+ Send
+ Sync;
#[derive(Debug)]
pub enum ModulePreload {
False,
Options(ModulePreloadOptions),
}
impl ModulePreload {
pub fn is_false(&self) -> bool {
match self {
ModulePreload::False => true,
ModulePreload::Options(_) => false,
}
}
pub fn options(&self) -> Option<&ModulePreloadOptions> {
match self {
ModulePreload::False => None,
ModulePreload::Options(options) => Some(options),
}
}
}
#[derive(derive_more::Debug)]
pub struct ModulePreloadOptions {
pub polyfill: bool,
#[debug(skip)]
pub resolve_dependencies: Option<Arc<ResolveDependenciesFn>>,
}