rust-curl 0.1.2

A minimal HTTP client with no dependencies
[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"]

# ///////////////
# Pre-commit
# ///////////////

[tasks.pre-commit]
depends = ["lint:clippy", "lint:fmt", "lint:commitlint"]
description = "Run Linting and Formatting"
hide = true

# ///////////////
# Install
# ///////////////

[tasks."install:pnpm"]

description = "Install pnpm packages"
run = "pnpm install"

sources = ['package.json', 'pnpm-lock.yaml', 'mise.toml']
outputs = ['node_modules/.pnpm/lock.yaml']


# ///////////////
# Linting
# ///////////////

[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

# ///////////////
# Build
# ///////////////

[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"