Skip to content

Commit

Permalink
refactor(repo): Speed up linting staged files
Browse files Browse the repository at this point in the history
  • Loading branch information
tmilewski committed Oct 30, 2023
1 parent 8050de6 commit 558c3bc
Showing 1 changed file with 37 additions and 3 deletions.
40 changes: 37 additions & 3 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,8 +1,42 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

# Build changed packages
npx turbo build
##############################
# Determine Staged Packages
##############################

staged_files=$(git diff --name-only --cached --diff-filter=ACM)

# Initialize an empty string to hold the unique folder paths
unique_folders=""

# Loop through each staged file
for file in $staged_files; do
# Extract the first two folders from the file path
folder=$(echo $file | awk -F'/' '{print $1 "/" $2}')

# Filter files which end with .js, .jsx, .ts, or .tsx [NOTE: Should match ./.lintstagedrc.json]
if [[ $file =~ \.(js|jsx|ts|tsx)$ ]]; then
# Check if this folder is already in the list of unique folders
if [[ $folder == packages/* ]] && [[ ! " $unique_folders " =~ "$folder" ]]; then
# Append the folder to the list of unique folders
unique_folders="$unique_folders --filter={./$folder}^..."
fi
fi
done

##############################
# Build Staged Packages
##############################

if [ -n "$unique_folders" ]; then
npx turbo run build --output-logs=errors-only $unique_folders
else
echo "SKIPPING: No packages to build"
fi

##############################
# Run Lint Staged
##############################

# Prettier Standalone
npx lint-staged

0 comments on commit 558c3bc

Please sign in to comment.