[package]
authors     = ["강동윤 <kdy1997.dev@gmail.com>", "OJ Kwon <kwon.ohjoong@gmail.com>"]
description = "Macros to build customized bindings interface"
edition     = { workspace = true }
license     = { workspace = true }
name        = "binding_macros"
repository  = { workspace = true }
version     = "21.0.0"

[lib]
bench = false

[features]
binding_native = []
binding_wasm = [
  # SWC features
  "swc",
  "swc_common",
  "swc_ecma_transforms",
  "swc_ecma_ast",
  "swc_ecma_visit",

  # Optional packages
  "once_cell",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "js-sys",
  "serde",
  "serde-wasm-bindgen",
  "anyhow",
  "console_error_panic_hook",
]

[dependencies]
# Common deps for the SWC imports
swc                 = { optional = true, version = "21.0.0", path = "../swc" }
swc_common          = { optional = true, version = "8.1.0", path = "../swc_common" }
swc_ecma_ast        = { optional = true, version = "8.1.1", path = "../swc_ecma_ast" }
swc_ecma_transforms = { optional = true, version = "15.0.0", path = "../swc_ecma_transforms" }
swc_ecma_visit      = { optional = true, version = "8.0.0", path = "../swc_ecma_visit" }

# Optional deps for the wasm binding macro
anyhow                   = { workspace = true, optional = true }
console_error_panic_hook = { workspace = true, optional = true }
js-sys                   = { workspace = true, optional = true }
once_cell                = { workspace = true, optional = true }
serde                    = { workspace = true, features = ["derive"], optional = true }
serde-wasm-bindgen       = { workspace = true, optional = true }


  [dependencies.wasm-bindgen]
  features  = ["enable-interning"]
  optional  = true
  workspace = true

  [dependencies.wasm-bindgen-futures]
  optional  = true
  workspace = true
