mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 20:28:58 +00:00
87 lines
2 KiB
Makefile
Executable file
87 lines
2 KiB
Makefile
Executable file
#!/usr/bin/env -S just --justfile
|
|
|
|
_default:
|
|
just --list -u
|
|
|
|
alias r := ready
|
|
alias c := coverage
|
|
|
|
# Initialize the project by installing all the necessary tools.
|
|
# Make sure you have cargo-binstall installed.
|
|
# You can download the pre-compiled binary from <https://github.com/cargo-bins/cargo-binstall#installation>
|
|
# or install via `cargo install cargo-binstall`
|
|
init:
|
|
cargo binstall cargo-nextest cargo-watch cargo-insta cargo-edit typos-cli taplo-cli wasm-pack cargo-llvm-cov -y
|
|
|
|
# When ready, run the same CI commands
|
|
ready:
|
|
git diff --exit-code --quiet
|
|
typos
|
|
cargo fmt
|
|
just check
|
|
cargo build -p oxc_cli --bin oxlint # for cli snapshots
|
|
just test
|
|
just lint
|
|
git status
|
|
|
|
# Update our local branch with the remote branch (this is for you to sync the submodules)
|
|
update:
|
|
git pull
|
|
git submodule update --init
|
|
|
|
# Run `cargo watch`
|
|
# --no-vcs-ignores: cargo-watch has a bug loading all .gitignores, including the ones listed in .gitignore
|
|
# use .ignore file getting the ignore list
|
|
watch command:
|
|
cargo watch --no-vcs-ignores -i '*snap*' -x '{{command}}'
|
|
|
|
# Format all files
|
|
fmt:
|
|
cargo fmt
|
|
taplo format
|
|
|
|
# Run cargo check
|
|
check:
|
|
cargo ck
|
|
|
|
# Run all the tests
|
|
test:
|
|
cargo nextest run
|
|
|
|
# Lint the whole project
|
|
lint:
|
|
cargo lint -- --deny warnings
|
|
|
|
# Run all the conformance tests. See `tasks/coverage`, `tasks/minsize`
|
|
coverage:
|
|
cargo coverage
|
|
cargo minsize
|
|
|
|
# Get code coverage
|
|
codecov:
|
|
cargo codecov --html
|
|
|
|
# Run the benchmarks. See `tasks/benchmark`
|
|
benchmark:
|
|
cargo benchmark
|
|
|
|
# Create a new lint rule by providing the ESLint name. See `tasks/rulegen`
|
|
new-rule name:
|
|
cargo run -p rulegen {{name}}
|
|
|
|
new-jest-rule name:
|
|
cargo run -p rulegen {{name}} jest
|
|
|
|
new-ts-rule name:
|
|
cargo run -p rulegen {{name}} typescript
|
|
|
|
new-unicorn-rule name:
|
|
cargo run -p rulegen {{name}} unicorn
|
|
|
|
# Sync all submodules with their own remote repos (this is for Boshen updating the submodules)
|
|
sync:
|
|
git submodule update --init --remote
|
|
|
|
# Upgrade all Rust dependencies
|
|
upgrade:
|
|
cargo upgrade --incompatible
|