Skip to content

Commit 27c49f1

Browse files
authored
Add a CLI flag for merge_imports_based_on_semver (#49)
Match `wasm-tools component new` in this respect
1 parent 031a7b8 commit 27c49f1

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/lib.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,13 @@ struct ComponentLdArgs {
262262
#[clap(long)]
263263
validate_component: Option<bool>,
264264

265+
/// Whether or not imports are deduplicated based on semver in the final
266+
/// component.
267+
///
268+
/// This defaults to `true`.
269+
#[clap(long)]
270+
merge_imports_based_on_semver: Option<bool>,
271+
265272
/// Adapters to use when creating the final component.
266273
#[clap(long = "adapt", value_name = "[NAME=]MODULE", value_parser = parse_adapter)]
267274
adapters: Vec<(String, Vec<u8>)>,
@@ -618,10 +625,16 @@ impl App {
618625
)?;
619626
}
620627

621-
let mut encoder = wit_component::ComponentEncoder::default()
628+
let mut encoder = wit_component::ComponentEncoder::default();
629+
if let Some(validate) = self.component.validate_component {
630+
encoder = encoder.validate(validate);
631+
}
632+
if let Some(merge) = self.component.merge_imports_based_on_semver {
633+
encoder = encoder.merge_imports_based_on_semver(merge);
634+
}
635+
encoder = encoder
622636
.module(&core_module)
623-
.context("failed to parse core wasm for componentization")?
624-
.validate(self.component.validate_component.unwrap_or(true));
637+
.context("failed to parse core wasm for componentization")?;
625638
let adapter = self.component.wasi_adapter.unwrap_or(if exports_start {
626639
WasiAdapter::Command
627640
} else {

0 commit comments

Comments
 (0)