use anyhow::{Context, Result};
use std::process::Command;
#[derive(clap::Args, Debug)]
pub struct TreeShakeArgs {}
pub async fn run(_args: TreeShakeArgs) -> Result<()> {
println!("Running tree-shake (tsr)...");
let root = crate::utils::find_project_root();
let status = Command::new("bunx")
.args([
"tsr",
"--write",
"--recursive",
r"^src/(main|index)\.ts$",
r"^src/app/.*\.(ts|tsx)$",
])
.current_dir(&root)
.status()
.context("Failed to execute tsr")?;
if !status.success() {
anyhow::bail!("Tree-shake failed");
}
println!("Tree-shake completed successfully.");
Ok(())
}