use clap::Args;
use std::path::PathBuf;
pub use webui::CssStrategy;
pub use webui::DomStrategy;
pub use webui::Plugin;
#[derive(Args, Clone)]
pub struct AppArgs {
#[arg(default_value = ".")]
pub app: PathBuf,
#[arg(long, default_value = "index.html")]
pub entry: String,
#[arg(long, value_enum, default_value_t = CssStrategy::Link)]
pub css: CssStrategy,
#[arg(long, value_enum, default_value_t = DomStrategy::Shadow)]
pub dom: DomStrategy,
#[arg(long, value_enum)]
pub plugin: Option<Plugin>,
#[arg(long, value_name = "SOURCE")]
pub components: Vec<String>,
}
impl AppArgs {
pub fn to_build_options(&self, app_dir: &std::path::Path) -> webui::BuildOptions {
webui::BuildOptions {
app_dir: app_dir.to_path_buf(),
entry: self.entry.clone(),
css: self.css,
dom: self.dom,
plugin: self.plugin,
components: self.components.clone(),
}
}
}