[tools]
"rust" = { version = "1.86.0", components = "rust-src,llvm-tools" }
node = "23"
pnpm = "10"
[hooks]
postinstall = ["mise generate git-pre-commit --write --task=pre-commit"]
[tasks.pre-commit]
depends = ["lint:clippy", "lint:fmt", "lint:commitlint"]
description = "Run Linting and Formatting"
hide = true
[tasks."install:pnpm"]
description = "Install pnpm packages"
run = "pnpm install"
sources = ['package.json', 'pnpm-lock.yaml', 'mise.toml']
outputs = ['node_modules/.pnpm/lock.yaml']
[tasks.lint]
depends = ["lint:clippy", "lint:fmt", "lint:commitlint"]
description = "Run Linting and Formatting"
hide = true
[tasks."lint:fmt"]
description = "Check formatting"
run = "cargo fmt -- --check"
[tasks."lint:clippy"]
description = "Run the clippy linter"
run = "cargo clippy -- -D warnings"
[tasks."lint:commitlint"]
description = "Validate commit message format"
run = "pnpm exec commitlint --edit"
hide = true
[tasks.build]
description = "Build the project"
run = "cargo build"
[tasks.test]
description = "Run the tests"
run = "cargo test"
[tasks.format]
description = "Format the code"
run = "cargo fmt"