diff --git a/crates/cli-support/src/js/mod.rs b/crates/cli-support/src/js/mod.rs index 4a78dadc4ef2..2e1062046c84 100644 --- a/crates/cli-support/src/js/mod.rs +++ b/crates/cli-support/src/js/mod.rs @@ -315,6 +315,11 @@ impl<'a> Context<'a> { fn js_import_header(&self) -> Result { let mut imports = String::new(); + + if self.config.omit_imports { + return Ok(imports) + } + match &self.config.mode { OutputMode::NoModules { .. } => { for (module, _items) in self.js_imports.iter() { diff --git a/crates/cli-support/src/lib.rs b/crates/cli-support/src/lib.rs index 1a25f5c6e578..49702c2d6dc3 100755 --- a/crates/cli-support/src/lib.rs +++ b/crates/cli-support/src/lib.rs @@ -26,6 +26,7 @@ pub struct Bindgen { mode: OutputMode, debug: bool, typescript: bool, + omit_imports: bool, demangle: bool, keep_debug: bool, remove_name_section: bool, @@ -97,6 +98,7 @@ impl Bindgen { }, debug: false, typescript: false, + omit_imports: false, demangle: true, keep_debug: false, remove_name_section: false, @@ -222,6 +224,11 @@ impl Bindgen { self } + pub fn omit_imports(&mut self, omit_imports: bool) -> &mut Bindgen { + self.omit_imports = omit_imports; + self + } + pub fn demangle(&mut self, demangle: bool) -> &mut Bindgen { self.demangle = demangle; self diff --git a/crates/cli/src/bin/wasm-bindgen.rs b/crates/cli/src/bin/wasm-bindgen.rs index 57d8b4c2812b..9e9969a63a35 100644 --- a/crates/cli/src/bin/wasm-bindgen.rs +++ b/crates/cli/src/bin/wasm-bindgen.rs @@ -28,6 +28,7 @@ Options: --browser Hint that JS should only be compatible with a browser --typescript Output a TypeScript definition file (on by default) --no-typescript Don't emit a *.d.ts file + --omit-imports Don't emit imports in generated JavaScript --debug Include otherwise-extraneous debug checks in output --no-demangle Don't demangle Rust symbol names --keep-debug Keep debug sections in wasm files @@ -49,6 +50,7 @@ struct Args { flag_no_modules: bool, flag_typescript: bool, flag_no_typescript: bool, + flag_omit_imports: bool, flag_out_dir: Option, flag_out_name: Option, flag_debug: bool, @@ -109,7 +111,8 @@ fn rmain(args: &Args) -> Result<(), Error> { .keep_debug(args.flag_keep_debug) .remove_name_section(args.flag_remove_name_section) .remove_producers_section(args.flag_remove_producers_section) - .typescript(typescript); + .typescript(typescript) + .omit_imports(args.flag_omit_imports); if let Some(ref name) = args.flag_no_modules_global { b.no_modules_global(name)?; } diff --git a/guide/src/reference/cli.md b/guide/src/reference/cli.md index 8afa336d634b..8bbebee765d5 100644 --- a/guide/src/reference/cli.md +++ b/guide/src/reference/cli.md @@ -48,6 +48,10 @@ is on by default. By default, a `*.d.ts` TypeScript declaration file is generated for the generated JavaScript bindings, but this flag will disable that. +### `--omit-imports` + +Omit the imports header section from the generated JavaScript. + ### `--debug` Generates a bit more JS and wasm in "debug mode" to help catch programmer