mirror of
https://github.com/danbulant/oxc
synced 2026-05-22 05:38:54 +00:00
159 lines
7.3 KiB
TOML
159 lines
7.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/*", "tasks/*", "napi/*"]
|
|
|
|
[workspace.package]
|
|
authors = ["Boshen <boshenc@gmail.com>", "Oxc contributors"]
|
|
categories = ["development-tools", "web-programming", "compilers"]
|
|
description = "Oxc is a JavaScript / TypeScript tooling suite."
|
|
edition = "2021"
|
|
homepage = "https://oxc-project.github.io"
|
|
keywords = ["JavaScript", "TypeScript", "parser", "linter", "minifier"]
|
|
license = "MIT"
|
|
repository = "https://github.com/oxc-project/oxc"
|
|
rust-version = "1.60"
|
|
|
|
[workspace.lints.rust]
|
|
|
|
[workspace.lints.clippy]
|
|
all = { level = "warn" }
|
|
# restriction
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
unimplemented = "warn"
|
|
# I like the explicitness of this rule as it removes confusion around `clone`.
|
|
# This increases readability, avoids `clone` mindlessly and heap allocating on accident.
|
|
clone_on_ref_ptr = "warn"
|
|
# These two are mutually exclusive, I like `mod.rs` files for better fuzzy searches on module entries.
|
|
self_named_module_files = "warn" # "-Wclippy::mod_module_files"
|
|
empty_drop = "warn"
|
|
empty_structs_with_brackets = "warn"
|
|
exit = "warn"
|
|
filetype_is_file = "warn"
|
|
get_unwrap = "warn"
|
|
impl_trait_in_params = "warn"
|
|
rc_buffer = "warn"
|
|
rc_mutex = "warn"
|
|
rest_pat_in_fully_bound_structs = "warn"
|
|
unnecessary_safety_comment = "warn"
|
|
undocumented_unsafe_blocks = "warn"
|
|
# I want to write the best Rust code so both pedantic and nursery is enabled.
|
|
# We should only disable rules globally if they are either false positives, chaotic, or does not make sense.
|
|
nursery = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
# Allowed rules
|
|
# pedantic
|
|
# This rule is too pedantic, I don't want to force this because naming things are hard.
|
|
module_name_repetitions = "allow"
|
|
# All triggers are mostly ignored in our codebase, so this is ignored globally.
|
|
struct_excessive_bools = "allow"
|
|
too_many_lines = "allow"
|
|
# #[must_use] is creating too much noise for this codebase, it does not add much value except nagging
|
|
# the programmer to add a #[must_use] after clippy has been run.
|
|
# Having #[must_use] every where also hinders readability.
|
|
must_use_candidate = "allow"
|
|
# used_underscore_binding= "allow"
|
|
doc_markdown = "allow"
|
|
# nursery
|
|
# `const` functions do not make sense for our project because this is not a `const` library.
|
|
# This rule also confuses new comers and forces them to add `const` blindlessly without any reason.
|
|
missing_const_for_fn = "allow"
|
|
|
|
[workspace.dependencies]
|
|
# publish = true
|
|
oxc = { version = "0.4.0", path = "crates/oxc" }
|
|
oxc_allocator = { version = "0.4.0", path = "crates/oxc_allocator" }
|
|
oxc_ast = { version = "0.4.0", path = "crates/oxc_ast" }
|
|
oxc_codegen = { version = "0.4.0", path = "crates/oxc_codegen" }
|
|
oxc_diagnostics = { version = "0.4.0", path = "crates/oxc_diagnostics" }
|
|
oxc_formatter = { version = "0.4.0", path = "crates/oxc_formatter" }
|
|
oxc_index = { version = "0.4.0", path = "crates/oxc_index" }
|
|
oxc_minifier = { version = "0.4.0", path = "crates/oxc_minifier" }
|
|
oxc_parser = { version = "0.4.0", path = "crates/oxc_parser" }
|
|
oxc_semantic = { version = "0.4.0", path = "crates/oxc_semantic" }
|
|
oxc_span = { version = "0.4.0", path = "crates/oxc_span" }
|
|
oxc_syntax = { version = "0.4.0", path = "crates/oxc_syntax" }
|
|
oxc_transformer = { version = "0.4.0", path = "crates/oxc_transformer" }
|
|
|
|
# publish = false
|
|
oxc_macros = { path = "crates/oxc_macros" }
|
|
oxc_linter = { path = "crates/oxc_linter" }
|
|
oxc_type_synthesis = { path = "crates/oxc_type_synthesis" }
|
|
oxc_query = { path = "crates/oxc_query" }
|
|
oxc_linter_plugin = { path = "crates/oxc_linter_plugin" }
|
|
oxc_prettier = { path = "crates/oxc_prettier" }
|
|
|
|
oxc_tasks_common = { path = "tasks/common" }
|
|
oxc_language_server = { path = "crates/oxc_language_server" }
|
|
|
|
bpaf = { version = "0.9.8" }
|
|
bitflags = { version = "2.4.1" }
|
|
bumpalo = { version = "3.14.0" }
|
|
compact_str = { version = "0.7.1" }
|
|
convert_case = { version = "0.6.0" }
|
|
criterion = { version = "0.5.1", default-features = false }
|
|
crossbeam-channel = { version = "0.5.10" }
|
|
dashmap = { version = "5.5.3" }
|
|
env_logger = { version = "0.10.1", default-features = false, features = ["auto-color", "humantime"] }
|
|
flate2 = { version = "1.0.28" }
|
|
futures = { version = "0.3.30" }
|
|
ignore = { version = "0.4.21" }
|
|
itertools = { version = "0.12.0" }
|
|
jemallocator = { version = "0.5.4" }
|
|
lazy_static = { version = "1.4.0" }
|
|
miette = { version = "5.10.0", features = ["fancy-no-backtrace"] }
|
|
mimalloc = { version = "0.1.39" }
|
|
num-bigint = { version = "0.4.4" }
|
|
num-traits = { version = "0.2.17" }
|
|
phf = { version = "0.11" }
|
|
pico-args = { version = "0.5.0" }
|
|
proc-macro2 = { version = "1.0.75" }
|
|
project-root = { version = "0.2.2" }
|
|
quote = { version = "1.0.35" }
|
|
rayon = { version = "1.8.0" }
|
|
regex = { version = "1.10.2" }
|
|
rustc-hash = { version = "1.1.0", default-features = false, features = ["std"] }
|
|
ryu-js = { version = "1.0.0" }
|
|
ropey = { version = "1.6.1" }
|
|
serde = { version = "1.0.194" }
|
|
serde_json = { version = "1.0.111" }
|
|
syn = { version = "=1" }
|
|
thiserror = { version = "1.0.56" }
|
|
tokio = { version = "1" }
|
|
tower-lsp = { version = "0.20.0", features = ["proposed"] }
|
|
unicode-id-start = { version = "1.1.2" }
|
|
ureq = { version = "2.9.1", default-features = false, features = ["tls"] }
|
|
url = { version = "2.5.0" }
|
|
walkdir = { version = "2.4.0" }
|
|
indexmap = { version = "2.1.0" }
|
|
index_vec = { version = "0.1.3" }
|
|
static_assertions = { version = "1.1.0" }
|
|
stacker = { version = "0.1.15" }
|
|
tracing = { version = "0.1" }
|
|
tracing-subscriber = { version = "0.3" }
|
|
trustfall = { version = "0.6.1" }
|
|
insta = { version = "1.34.0", features = ["glob"] }
|
|
codspeed-criterion-compat = { version = "2.3.3", default-features = false }
|
|
glob = { version = "0.3.1" }
|
|
mime_guess = { version = "2.0.4" }
|
|
language-tags = { version = "0.3.2" }
|
|
|
|
[profile.release.package.oxc_wasm]
|
|
opt-level = 'z'
|
|
|
|
[profile.release]
|
|
# Configurations explicitly listed here for clarity.
|
|
# Using the best options for performance.
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
strip = "symbols"
|
|
debug = false
|
|
panic = "abort" # Let it crash and force ourselves to write safe Rust.
|
|
|
|
# Use the `--profile release-debug` flag to show symbols in release mode.
|
|
# e.g. `cargo build --profile release-debug`
|
|
[profile.release-debug]
|
|
inherits = "release"
|
|
strip = false
|
|
debug = true
|