2222
2323HAS_GO_FILES=false
2424HAS_FRONTEND_FILES=false
25+ HAS_BACKEND_NODEJS_FILES=false
2526
2627# 检查是否有 Go 文件
2728for file in $STAGED_FILES ; do
@@ -39,6 +40,14 @@ for file in $STAGED_FILES; do
3940 fi
4041done
4142
43+ # 检查是否有 backend-nodejs 文件
44+ for file in $STAGED_FILES ; do
45+ if [[ " $file " == backend-nodejs/* ]] && [[ " $file " =~ \. (ts)$ ]]; then
46+ HAS_BACKEND_NODEJS_FILES=true
47+ break
48+ fi
49+ done
50+
4251# 格式化 Go 代码
4352if [ " $HAS_GO_FILES " = true ]; then
4453 echo " 📐 Formatting Go code..."
@@ -121,7 +130,60 @@ if [ "$HAS_FRONTEND_FILES" = true ]; then
121130 echo " "
122131fi
123132
133+ # 检查 backend-nodejs ESLint
134+ if [ " $HAS_BACKEND_NODEJS_FILES " = true ]; then
135+ echo " 🔍 Checking backend-nodejs ESLint..."
136+
137+ # 检查是否有 pnpm
138+ if ! command -v pnpm > /dev/null 2>&1 ; then
139+ echo " ⚠️ pnpm not found, skipping ESLint check"
140+ echo " Install with: npm install -g pnpm"
141+ else
142+ cd " $ROOT_DIR /backend-nodejs"
143+
144+ # 收集需要检查的 TypeScript 文件
145+ TS_FILES=()
146+ for file in $STAGED_FILES ; do
147+ if [[ " $file " == backend-nodejs/* ]] && [[ " $file " =~ \. (ts)$ ]]; then
148+ REL_PATH=" ${file# backend-nodejs/ } "
149+ if [ -f " $ROOT_DIR /backend-nodejs/$REL_PATH " ]; then
150+ TS_FILES+=(" $REL_PATH " )
151+ fi
152+ fi
153+ done
154+
155+ if [ ${# TS_FILES[@]} -gt 0 ]; then
156+ # 运行 ESLint 检查(只检查错误,警告不会阻止提交)
157+ echo " Checking ${# TS_FILES[@]} TypeScript file(s)..."
158+
159+ # 运行 lint 并捕获输出和退出码
160+ LINT_OUTPUT=$( pnpm lint 2>&1 )
161+ LINT_EXIT_CODE=$?
162+
163+ # 检查是否有错误(非零退出码表示有错误)
164+ if [ $LINT_EXIT_CODE -eq 0 ]; then
165+ echo " ✅ ESLint check passed (warnings are allowed)"
166+ else
167+ echo " "
168+ echo " ❌ ESLint check failed! Found errors that must be fixed."
169+ echo " "
170+ echo " $LINT_OUTPUT " | grep -E " (error|✖)" | head -20
171+ echo " "
172+ echo " Please fix the errors before committing."
173+ echo " Run 'cd backend-nodejs && pnpm lint' to see all issues."
174+ echo " Or run 'cd backend-nodejs && pnpm lint:fix' to auto-fix some issues."
175+ echo " "
176+ cd " $ROOT_DIR "
177+ exit 1
178+ fi
179+ fi
180+
181+ cd " $ROOT_DIR "
182+ fi
183+ echo " "
184+ fi
185+
124186echo " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
125- echo " ✅ Code formatting complete!"
187+ echo " ✅ Code formatting and linting complete!"
126188echo " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
127189
0 commit comments