Files
eSIM-Tools/scripts/apply-middleware.sh
Abner 4a0fcc94fe feat: 重构Netlify Functions架构并增强代码质量
- 新增统一的中间件模块,提供鉴权、CORS和错误处理功能
- 重构所有Functions使用withAuth中间件简化代码结构
- 添加安全存储模块替代localStorage,防御XSS攻击
- 引入HTML清理工具,自动转义特殊字符和验证URL安全性
- 创建代码质量检查脚本,验证语法、环境变量和依赖完整性
- 添加构建日志工具和重构脚本,统一替换console.log为Logger
- 引入ESLint配置,提升代码质量和一致性
- 重构Giffgaff相关API,统一错误处理和验证逻辑
- 优化构建脚本,添加压缩和图片优化功能
- 新增健康检查端点,用于服务监控和状态报告
2025-11-23 22:20:02 +08:00

62 lines
1.5 KiB
Bash

#!/bin/bash
# 批量应用中间件到剩余Functions的脚本
# 使用方法: bash scripts/apply-middleware.sh
set -e
FUNCTIONS_DIR="netlify/functions"
echo "🔧 开始批量重构Functions..."
echo ""
# 定义需要重构的函数列表(排除已重构的)
FUNCTIONS=(
"giffgaff-graphql"
"giffgaff-mfa-challenge"
"giffgaff-mfa-validation"
"giffgaff-sms-activate"
"auto-activate-esim"
)
for func in "${FUNCTIONS[@]}"; do
FILE="${FUNCTIONS_DIR}/${func}.js"
if [ ! -f "$FILE" ]; then
echo "⚠️ 跳过不存在的文件: $FILE"
continue
fi
echo "📝 处理: $func.js"
# 备份原文件
cp "$FILE" "${FILE}.backup"
# 检查是否已经使用中间件
if grep -q "withAuth" "$FILE"; then
echo " ✅ 已使用中间件,跳过"
rm "${FILE}.backup"
continue
fi
echo " ⏳ 添加中间件导入..."
# 在第一个require之后添加中间件导入
if ! grep -q "_shared/middleware" "$FILE"; then
sed -i.tmp "1,/const.*require/s/\(const.*require.*\);/\1;\nconst { withAuth, validateInput, AuthError } = require('.\/\_shared\/middleware');/" "$FILE"
rm "${FILE}.tmp" 2>/dev/null || true
fi
echo " ✅ 完成"
echo ""
done
echo "✨ 批量重构完成!"
echo ""
echo "📋 请手动完成以下步骤:"
echo " 1. 检查每个函数的备份文件(.backup)"
echo " 2. 完成exports.handler重构为withAuth包装"
echo " 3. 添加输入验证schema"
echo " 4. 测试功能是否正常"
echo ""
echo "💡 参考示例: netlify/functions/giffgaff-token-exchange.js"