Files
wasm-bindgen/guide/src/examples/import-js.md
Alex Crichton 3efe51eb8b Reorganize and rewrite examples
This commit is a large-ish scale reorganization of our examples. The
main goal here is to have a dedicated section of the guide for example,
and all examples will be listed there. Each example's `README` is now
just boilerplate pointing at the guide along with a blurb about how to
run it.

Some examples like `math` and `smorgasboard` have been deleted as they
didn't really serve much purpose, and others like `closures` have been
rewritten with `web-sys` instead of hand-bound bindings.

Overall it's hoped that this puts us in a good and consistent state for
our examples, with all of them being described in the guide, excerpts
are in the guide, and they're all relatively idiomatically using
`web-sys`.
2018-09-20 16:45:30 -07:00

27 lines
712 B
Markdown

# Importing non-browser JS
[View full source code][code]
[code]: https://github.com/rustwasm/wasm-bindgen/tree/master/examples/import_js
The `#[wasm_bindgen]` attribute can be used on `extern { .. }` blocks to import
functionality from JS. This is how the `js-sys` and the `web-sys` crates are
built, but you can also use it in your own crate!
For example if you're working with this JS file:
```js
// defined-in-js.js
{{#include ../../../examples/import_js/defined-in-js.js}}
```
you can use it in Rust with:
```rust
{{#include ../../../examples/import_js/src/lib.rs}}
```
You can also [explore the full list of ways to configure imports][attr]
[attr]: ../reference/attributes/on-js-imports/index.html