#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"


RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color


run_checks() {
    local path=$1
    local changes=$(git diff --cached --name-only | grep "^${path}/" || true)
    if [ -n "$changes" ]; then
        echo "${BLUE}Running ${path} checks and tests...${NC}"
        cd ./${path} 
        npm run typecheck
        npm run lint
        if [ "$path" = "api" ]; then
            npm run test:half # Run API specific tests
        fi
        cd - > /dev/null
    else
        echo "${YELLOW}No changes detected in ${path}, skipping checks and tests.${NC}"
    fi
}

echo "${BLUE}Running pre-commit checks...${NC}"
echo ""
run_checks "widget"
run_checks "frontend"
run_checks "api" 
echo "\n${GREEN}Pre-commit checks completed successfully.${NC}\n"