You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.9 KiB
122 lines
3.9 KiB
#!/bin/bash
|
|
|
|
# TimeSafari Notification Migration Completeness Validator
|
|
# Detects components with incomplete notification migrations
|
|
|
|
echo "🔔 TimeSafari Notification Migration Validator"
|
|
echo "=============================================="
|
|
|
|
# Function to check if file has raw $notify calls
|
|
check_raw_notify() {
|
|
local file="$1"
|
|
if [[ ! -f "$file" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
# Count $notify calls (excluding comments and initialization)
|
|
local notify_count=$(grep -v "^[[:space:]]*//\|^[[:space:]]*\*" "$file" | grep -v "createNotifyHelpers(this\.\$notify)" | grep -c "this\.\$notify")
|
|
echo "$notify_count"
|
|
}
|
|
|
|
# Function to check if file has notification helpers setup
|
|
check_notify_helpers() {
|
|
local file="$1"
|
|
if [[ ! -f "$file" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
# Check for createNotifyHelpers import and usage
|
|
local has_import=$(grep -c "createNotifyHelpers" "$file")
|
|
local has_property=$(grep -c "notify!:" "$file")
|
|
local has_created=$(grep -c "this.notify = createNotifyHelpers" "$file")
|
|
|
|
if [[ $has_import -gt 0 && $has_property -gt 0 && $has_created -gt 0 ]]; then
|
|
echo "complete"
|
|
elif [[ $has_import -gt 0 || $has_property -gt 0 || $has_created -gt 0 ]]; then
|
|
echo "partial"
|
|
else
|
|
echo "none"
|
|
fi
|
|
}
|
|
|
|
echo "🔍 Scanning for notification migration completeness..."
|
|
|
|
# Get all Vue components using PlatformServiceMixin
|
|
mixin_components=$(grep -l "PlatformServiceMixin" src/**/*.vue 2>/dev/null | sort)
|
|
|
|
incomplete_migrations=()
|
|
partial_migrations=()
|
|
complete_migrations=()
|
|
|
|
for component in $mixin_components; do
|
|
notify_count=$(check_raw_notify "$component")
|
|
helper_status=$(check_notify_helpers "$component")
|
|
|
|
if [[ $notify_count -gt 0 ]]; then
|
|
if [[ "$helper_status" == "none" ]]; then
|
|
incomplete_migrations+=("$component ($notify_count \$notify calls, no helpers)")
|
|
elif [[ "$helper_status" == "partial" ]]; then
|
|
partial_migrations+=("$component ($notify_count \$notify calls, partial helpers)")
|
|
else
|
|
incomplete_migrations+=("$component ($notify_count \$notify calls, but has helpers - mixed pattern)")
|
|
fi
|
|
else
|
|
if [[ "$helper_status" == "complete" ]]; then
|
|
complete_migrations+=("$component")
|
|
elif [[ "$helper_status" == "partial" ]]; then
|
|
partial_migrations+=("$component (unused helper setup)")
|
|
else
|
|
complete_migrations+=("$component")
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Report results
|
|
echo ""
|
|
echo "📊 Notification Migration Status Report"
|
|
echo "======================================="
|
|
|
|
if [[ ${#incomplete_migrations[@]} -gt 0 ]]; then
|
|
echo "❌ INCOMPLETE NOTIFICATION MIGRATIONS (${#incomplete_migrations[@]} components):"
|
|
for item in "${incomplete_migrations[@]}"; do
|
|
echo " - $item"
|
|
done
|
|
echo ""
|
|
fi
|
|
|
|
if [[ ${#partial_migrations[@]} -gt 0 ]]; then
|
|
echo "⚠️ PARTIAL NOTIFICATION MIGRATIONS (${#partial_migrations[@]} components):"
|
|
for item in "${partial_migrations[@]}"; do
|
|
echo " - $item"
|
|
done
|
|
echo ""
|
|
fi
|
|
|
|
if [[ ${#complete_migrations[@]} -gt 0 ]]; then
|
|
echo "✅ COMPLETE NOTIFICATION MIGRATIONS (${#complete_migrations[@]} components):"
|
|
for item in "${complete_migrations[@]}"; do
|
|
echo " - $item"
|
|
done
|
|
echo ""
|
|
fi
|
|
|
|
# Summary
|
|
total_issues=$((${#incomplete_migrations[@]} + ${#partial_migrations[@]}))
|
|
total_components=${#mixin_components[@]}
|
|
|
|
echo "📈 Summary:"
|
|
echo " Total PlatformServiceMixin components: $total_components"
|
|
echo " Complete notification migrations: ${#complete_migrations[@]}"
|
|
echo " Incomplete/partial migrations: $total_issues"
|
|
|
|
if [[ $total_issues -gt 0 ]]; then
|
|
echo ""
|
|
echo "🚨 ACTION REQUIRED:"
|
|
echo " $total_issues components need notification migration completion"
|
|
echo " Follow: docs/migration-templates/COMPLETE_MIGRATION_CHECKLIST.md"
|
|
exit 1
|
|
else
|
|
echo ""
|
|
echo "🎉 ALL NOTIFICATION MIGRATIONS COMPLETE!"
|
|
exit 0
|
|
fi
|