pub mod bundler;
pub mod config;
mod package;
mod templates;
pub use bundler::JsBundler;
pub use config::{Instrument, JsBuildConfig, ModuleAlias, SimulatorPackage, SimulatorPackageKind};
use infinity_build_core::{BuildResult, Builder, SimpleArtifact};
use std::path::Path;
pub fn build_all(
config: &JsBuildConfig,
project_root: &Path,
filter: Option<®ex::Regex>,
options: &bundler::BundleOptions,
) -> BuildResult<Vec<SimpleArtifact>> {
let bundler = JsBundler::new(project_root, options.clone());
let mut out = Vec::new();
for instrument in &config.instruments {
if let Some(re) = filter {
if !re.is_match(&instrument.name) {
continue;
}
}
let input = bundler::JsBuildInput {
instrument: instrument.clone(),
package: config.package.clone(),
};
let artifact = bundler.build(&input)?;
out.push(artifact.into());
}
Ok(out)
}