{ "$schema": "https://json.schemastore.org/lefthook.json", "pre-commit": { "commands": { "format": { "glob": "*.{ts,js,tsx,jsx,css,json,html}", "run": "bunx oxfmt {staged_files}", }, "lint:ts": { "glob": "*.{ts,js,tsx,jsx}", "run": "bunx oxlint --ignore-path .oxlintignore {staged_files} --max-warnings 0 --fix --tsconfig ./tsconfig.json --type-aware", }, "go-fmt": { "glob": "*.go", "run": "go fmt {staged_files}" }, "go-lint": { "glob": "*.go", "run": "golangci-lint run {staged_files}" }, "go-test": { "glob": "*.go", "run": 'printf "%s\n" {staged_files} | xargs -n1 dirname | sort -u | xargs -I{} go test -count=1 ./{}', }, "ts-typecheck": { "glob": "*.ts", "run": "bunx tsc -p tsconfig.json --noEmit" }, "build-assets": { "glob": "*.{ts,css}", "run": "bun run build:assets" }, "go-build": { "glob": "*.go", "run": 'printf "%s\n" {staged_files} | xargs -n1 dirname | sort -u | xargs -I{} go build -o /dev/null ./{}', }, }, }, }