[package]
edition = "2024"
name = "macroforge_ts"
version = "0.1.80"
authors = ["macroforge contributors"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "TypeScript macro expansion engine - write compile-time macros in Rust"
homepage = "https://github.com/macroforge-ts/macroforge-ts"
readme = "README.md"
keywords = [
"typescript",
"macros",
"codegen",
"derive",
]
categories = ["development-tools::procedural-macro-helpers"]
license = "MIT"
repository = "https://github.com/macroforge-ts/macroforge-ts"
[features]
build = ["libc"]
buildtime-boa = [
"dep:boa_engine",
"dep:getrandom",
"dep:web-time",
]
default = [
"wasm",
"oxc",
"buildtime-boa",
]
full = [
"oxc",
"swc",
"wasm",
"build",
"buildtime-boa",
]
node = [
"dep:napi",
"dep:napi-derive",
"dep:napi-build",
]
oxc = [
"dep:oxc",
"macroforge_ts_syn/oxc",
"macroforge_ts_quote/oxc",
]
swc = [
"dep:swc_core",
"macroforge_ts_syn/swc",
"macroforge_ts_quote/swc",
]
test-macros = []
wasm = [
"dep:wasm-bindgen",
"dep:serde-wasm-bindgen",
"dep:js-sys",
]
[lib]
name = "macroforge_ts"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "macroforge"
path = "src/bin/cli/main.rs"
[[test]]
name = "cli"
path = "tests/cli.rs"
[[test]]
name = "cross_file_declarative"
path = "tests/cross_file_declarative.rs"
[[test]]
name = "differential"
path = "tests/differential.rs"
[[test]]
name = "oxc_ts_quote"
path = "tests/oxc_ts_quote.rs"
[[test]]
name = "spec_tests"
path = "tests/spec_tests.rs"
required-features = ["test-macros"]
[[test]]
name = "template"
path = "tests/template.rs"
[[bench]]
name = "declarative_composition"
path = "benches/declarative_composition.rs"
harness = false
required-features = ["oxc"]
[dependencies.anyhow]
version = "1.0"
[dependencies.boa_engine]
version = "0.21"
optional = true
[dependencies.clap]
version = "4.5"
features = ["derive"]
[dependencies.convert_case]
version = "0.11"
[dependencies.dashmap]
version = "6.1"
[dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]
optional = true
[dependencies.globset]
version = "0.4"
[dependencies.hex]
version = "0.4"
[dependencies.ignore]
version = "0.4"
[dependencies.indexmap]
version = "2.7"
[dependencies.inventory]
version = "0.3.21"
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.libloading]
version = "0.9"
[dependencies.macroforge_ts_macros]
version = "0.1.82"
[dependencies.macroforge_ts_quote]
version = "0.1.82"
[dependencies.macroforge_ts_syn]
version = "0.1.82"
[dependencies.napi]
version = "3.5.2"
features = [
"napi8",
"compat-mode",
"tokio_rt",
]
optional = true
[dependencies.napi-derive]
version = "3.3.3"
features = ["type-def"]
optional = true
[dependencies.notify-debouncer-full]
version = "0.7"
[dependencies.oxc]
version = "0.123"
features = [
"codegen",
"ast_visit",
"transformer",
"semantic",
]
optional = true
[dependencies.rayon]
version = "1.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.11"
[dependencies.swc_core]
version = "59.0.1"
features = [
"ecma_ast",
"ecma_parser",
"ecma_codegen",
"ecma_visit",
"ecma_utils",
"common",
]
optional = true
[dependencies.tempfile]
version = "3.13.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.unicode-ident]
version = "1"
[dependencies.wasm-bindgen]
version = "0.2.100"
optional = true
[dependencies.web-time]
version = "1.1"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1.42"
features = ["glob"]
[dev-dependencies.trybuild]
version = "1.0"
[build-dependencies.libc]
version = "0.2"
[build-dependencies.napi-build]
version = "2.3.1"
optional = true