cloudflare/cloudflare-typescript
Publicmirrored fromhttps://github.com/cloudflare/cloudflare-typescriptAvailable
scripts/fast-format
40lines · modecode
| 1 | #!/usr/bin/env bash |
| 2 | |
| 3 | set -euo pipefail |
| 4 | |
| 5 | echo "Script started with $# arguments" |
| 6 | echo "Arguments: $*" |
| 7 | echo "Script location: $(dirname "$0")" |
| 8 | |
| 9 | cd "$(dirname "$0")/.." |
| 10 | echo "Changed to directory: $(pwd)" |
| 11 | |
| 12 | if [ $# -eq 0 ]; then |
| 13 | echo "Usage: $0 <file-with-paths> [additional-formatter-args...]" |
| 14 | echo "The file should contain one file path per line" |
| 15 | exit 1 |
| 16 | fi |
| 17 | |
| 18 | FILE_LIST="$1" |
| 19 | |
| 20 | echo "Looking for file: $FILE_LIST" |
| 21 | |
| 22 | if [ ! -f "$FILE_LIST" ]; then |
| 23 | echo "Error: File '$FILE_LIST' not found" |
| 24 | exit 1 |
| 25 | fi |
| 26 | |
| 27 | echo "==> Running eslint --fix" |
| 28 | ESLINT_FILES="$(grep '\.ts$' "$FILE_LIST" || true)" |
| 29 | if ! [ -z "$ESLINT_FILES" ]; then |
| 30 | echo "$ESLINT_FILES" | ESLINT_USE_FLAT_CONFIG="false" xargs ./node_modules/.bin/eslint --cache --fix |
| 31 | fi |
| 32 | |
| 33 | echo "==> Running prettier --write" |
| 34 | # format things eslint didn't |
| 35 | PRETTIER_FILES="$(grep '\.\(js\|json\)$' "$FILE_LIST" || true)" |
| 36 | if ! [ -z "$PRETTIER_FILES" ]; then |
| 37 | echo "$PRETTIER_FILES" | xargs ./node_modules/.bin/prettier \ |
| 38 | --write --cache --cache-strategy metadata --no-error-on-unmatched-pattern \ |
| 39 | '!**/dist' '!**/*.ts' '!**/*.mts' '!**/*.cts' '!**/*.js' '!**/*.mjs' '!**/*.cjs' |
| 40 | fi |
| 41 | |