Skip to content

Commit

Permalink
Add electron support via --omit-imports
Browse files Browse the repository at this point in the history
  • Loading branch information
darinmorrison committed Feb 11, 2020
1 parent ca742a8 commit 59e8d02
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 1 deletion.
5 changes: 5 additions & 0 deletions crates/cli-support/src/js/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,11 @@ impl<'a> Context<'a> {

fn js_import_header(&self) -> Result<String, Error> {
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() {
Expand Down
7 changes: 7 additions & 0 deletions crates/cli-support/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -97,6 +98,7 @@ impl Bindgen {
},
debug: false,
typescript: false,
omit_imports: false,
demangle: true,
keep_debug: false,
remove_name_section: false,
Expand Down Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion crates/cli/src/bin/wasm-bindgen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<PathBuf>,
flag_out_name: Option<String>,
flag_debug: bool,
Expand Down Expand Up @@ -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)?;
}
Expand Down
9 changes: 9 additions & 0 deletions guide/src/reference/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ 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`

When the `module` attribute is used with the `wasm-bindgen` macro, the code
generator will emit corresponding `import` or `require` statements in the header
section of the generated javascript. This flag causes those import statements to
be omitted. This is necessary for some use cases, such as generating javascript
which is intended to be used with Electron (with node integration disabled),
where the imports are instead handled through a separate preload script.

### `--debug`

Generates a bit more JS and wasm in "debug mode" to help catch programmer
Expand Down

0 comments on commit 59e8d02

Please sign in to comment.