[package]
name = "wasm_evt_listener"
version = "0.1.0"
edition = "2021"
license = "MIT"
rust-version = "1.75.0"
description = "A smart Future-based WASM event listener that cleans up after itself on drop"
authors = ["Alorel <amolc@pm.me>"]
categories = ["wasm", "web-programming"]
keywords = ["wasm", "event", "listener", "drop", "future"]
repository = "https://github.com/Alorel/wasm-evt-listener-rs.git"
include = [
  "src/",
  "Cargo.toml",
]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "doc_cfg"]

[features]
streams = ["dep:futures-core"]

[workspace.dependencies]
tokio = { version = "1.30", default-features = false }
web-sys = "0.3.72"

[dependencies]
accessory = "2"
derive_more = {version = "1", default-features = false, features = ["deref", "deref_mut"]}
derivative = "2.2"
fancy_constructor = "2"
futures-core = { version = "0.3", optional = true }
js-sys = "0.3.72"
smallvec = {version = "1.13", default-features = false}
tokio = { workspace = true, default-features = false, features = ["sync"] }
wasm-bindgen = "0.2.95"

[dependencies.web-sys]
workspace = true
features = [
  "Event",
  "EventTarget",
  "EventListenerOptions",
  "AddEventListenerOptions",
]

[dev-dependencies]
futures = "0.3.31"
tokio = { workspace = true, features = ["macros"] }
tokio-util = "0.7.12"
web-sys = { workspace = true, features = ["CustomEvent", "CustomEventInit", "Element", "Document", "Window"] }
wasm-bindgen-test = "0.3.45"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(doc_cfg)'] }