swc/bindings/binding_core_wasm/Cargo.toml
David Sherret 981d7b152b
refactor(common): Make ahash optional (#7816)
**Description:**

This adds the ability to not include `ahash` with swc_common, which
caused some issues for me compiling dprint-plugin-typescript to Wasm
because of:

```
   Compiling ahash v0.8.3
   Compiling getrandom v0.2.10
error: the wasm*-unknown-unknown targets are not supported by default, you may need to enable the "js" feature. For more information see: https://docs.rs/getrandom/#webassembly-support
   --> C:\Users\david\.cargo\registry\src\index.crates.io-6f17d22bba15001f\getrandom-0.2.10\src\lib.rs:285:9
    |
285 | /         compile_error!("the wasm*-unknown-unknown targets are not supported by \
286 | |                         default, you may need to enable the \"js\" feature. \
287 | |                         For more information see: \
288 | |                         https://docs.rs/getrandom/#webassembly-support");
    | |________________________________________________________________________^
``` 

(I can't enable the JS feature because it's running the wasm file in
Wasmer and also I don't support Wasi in dprint plugins)

**BREAKING CHANGE:**

This removes swc_common's "perf" feature and makes it the default, then
adds an `ahash` feature instead. An alternative would be to make the
`ahash` dep optional and part of the default features, then do
`default-features = false` in the downstream crates (I think, but I'm
not sure), but I figure most people will be using the perf default
anyway? I'm not sure what's preferable.

**Related issue:**

 - Closes #7729.
2023-08-16 18:02:05 +00:00

49 lines
1.3 KiB
TOML

[package]
authors = ["강동윤 <kdy1997.dev@gmail.com>"]
description = "wasm module for swc"
edition = "2021"
license = "Apache-2.0"
name = "binding_core_wasm"
publish = false
repository = "https://github.com/swc-project/swc.git"
version = "1.3.77"
[lib]
bench = false
crate-type = ["cdylib"]
[features]
default = ["swc_v1"]
swc_v1 = []
swc_v2 = []
# This feature exists to allow cargo operations
# [TODO]: this is disabled due to signature mismatch between host_native and host_js,
# which causes build errors like
# .call(&mut self.store, ptr.0, ptr.1)
# | ^^^^ the trait `NativeWasmTypeInto` is not implemented for `u32`
# |
# = help: the following other types implement trait `NativeWasmTypeInto`:
# f32
# f64
# i32
# i64
# u128
plugin = []
[dependencies]
anyhow = "1.0.66"
getrandom = { version = "0.2.10", features = ["js"] }
serde = { version = "1", features = ["derive"] }
serde-wasm-bindgen = "0.4.5"
swc_core = { version = "0.79.59", features = [
"ecma_ast_serde",
"binding_macro_wasm",
"ecma_transforms",
"ecma_visit",
] }
tracing = { version = "0.1.37", features = ["max_level_off"] }
wasm-bindgen = { version = "0.2.82", features = ["enable-interning"] }
[package.metadata.wasm-pack.profile.release]
wasm-opt = false