[package]
name                   = "oxc_syntax"
version                = "0.24.0"
publish                = true
authors.workspace      = true
description.workspace  = true
edition.workspace      = true
homepage.workspace     = true
keywords.workspace     = true
license.workspace      = true
repository.workspace   = true
rust-version.workspace = true
categories.workspace   = true
include                = ["/src"]

[lints]
workspace = true

[lib]
doctest = false

[dependencies]
oxc_index      = { workspace = true }
oxc_span       = { workspace = true }
oxc_ast_macros = { workspace = true }
oxc_allocator  = { workspace = true }

unicode-id-start = { workspace = true }
bitflags         = { workspace = true }
rustc-hash       = { workspace = true }
dashmap          = { workspace = true }
phf              = { workspace = true, features = ["macros"] }
nonmax           = { workspace = true }

ryu-js       = { workspace = true, optional = true }
serde        = { workspace = true, features = ["derive"], optional = true }
tsify        = { workspace = true, optional = true }
wasm-bindgen = { workspace = true, optional = true }

[features]
default      = []
to_js_string = ["dep:ryu-js"]
serialize    = ["bitflags/serde", "dep:serde", "dep:tsify", "dep:wasm-bindgen", "oxc_index/serialize"]

[package.metadata.cargo-shear]
# We use `oxc_ast_macros::CloneIn` which expands to use `oxc_allocator`.
# To fix this we have to expose `CloneIn` through `oxc_allocator`
# (and probably move it to `oxc_allocator_derive`).
ignored = ["oxc_allocator"]
