Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:25:53 +08:00
commit 36a2b87167
20 changed files with 3513 additions and 0 deletions

141
scripts/check-versions.sh Executable file
View File

@@ -0,0 +1,141 @@
#!/bin/bash
# Zustand Version Checker
# Verifies installed versions and compatibility
# Usage: ./scripts/check-versions.sh
set -e
echo "🐻 Zustand Version Checker"
echo "=========================="
echo ""
# Check if package.json exists
if [ ! -f "package.json" ]; then
echo "❌ No package.json found in current directory"
echo " Run this script from your project root"
exit 1
fi
# Function to get installed version
get_version() {
local package=$1
if [ -f "node_modules/$package/package.json" ]; then
node -p "require('./node_modules/$package/package.json').version" 2>/dev/null || echo "not installed"
else
echo "not installed"
fi
}
# Function to get latest version from npm
get_latest() {
local package=$1
npm view "$package" version 2>/dev/null || echo "unknown"
}
# Check Zustand
echo "📦 Zustand"
zustand_installed=$(get_version "zustand")
zustand_latest=$(get_latest "zustand")
if [ "$zustand_installed" = "not installed" ]; then
echo " Status: ❌ Not installed"
echo " Install: npm install zustand"
else
echo " Installed: $zustand_installed"
echo " Latest: $zustand_latest"
# Check if major version is 5
major=$(echo "$zustand_installed" | cut -d'.' -f1)
if [ "$major" -ge 5 ]; then
echo " Status: ✅ v5+ (recommended)"
elif [ "$major" -eq 4 ]; then
echo " Status: ⚠️ v4 (upgrade recommended)"
echo " Migration: See references/migration-guide.md"
else
echo " Status: ❌ v$major (unsupported)"
echo " Action: Upgrade to v5+"
fi
fi
echo ""
# Check React
echo "📦 React"
react_installed=$(get_version "react")
react_latest=$(get_latest "react")
if [ "$react_installed" = "not installed" ]; then
echo " Status: ❌ Not installed"
else
echo " Installed: $react_installed"
echo " Latest: $react_latest"
# Check if version is 18+
major=$(echo "$react_installed" | cut -d'.' -f1)
if [ "$major" -ge 18 ]; then
echo " Status: ✅ v18+ (compatible)"
else
echo " Status: ⚠️ v$major (Zustand works, but upgrade recommended)"
fi
fi
echo ""
# Check TypeScript (optional)
echo "📦 TypeScript (optional)"
ts_installed=$(get_version "typescript")
if [ "$ts_installed" = "not installed" ]; then
echo " Status: Not installed (optional)"
else
echo " Installed: $ts_installed"
# Check if version is 5+
major=$(echo "$ts_installed" | cut -d'.' -f1)
if [ "$major" -ge 5 ]; then
echo " Status: ✅ v5+ (recommended)"
else
echo " Status: ⚠️ v$major (upgrade recommended for better types)"
fi
fi
echo ""
# Check Next.js (if using persist)
if grep -q '"next"' package.json 2>/dev/null; then
echo "📦 Next.js (detected)"
next_installed=$(get_version "next")
echo " Installed: $next_installed"
# Check if major version is 14+
major=$(echo "$next_installed" | cut -d'.' -f1)
if [ "$major" -ge 14 ]; then
echo " Status: ✅ v14+ (App Router supported)"
elif [ "$major" -eq 13 ]; then
echo " Status: ✅ v13 (supported)"
else
echo " Status: ⚠️ v$major (upgrade recommended)"
fi
echo " Note: See references/nextjs-hydration.md for SSR setup"
echo ""
fi
# Summary
echo "=========================="
echo "✅ Version check complete"
echo ""
if [ "$zustand_installed" = "not installed" ]; then
echo "Next steps:"
echo " npm install zustand"
echo " See SKILL.md for setup instructions"
elif [ "$major" -lt 5 ]; then
echo "Recommended upgrade:"
echo " npm install zustand@latest"
echo " See references/migration-guide.md for v4→v5 changes"
else
echo "All versions compatible! 🎉"
echo "See SKILL.md for usage patterns"
fi

15
scripts/example-script.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
# [TODO: Script Name]
# [TODO: Brief description of what this script does]
# Example script structure - delete if not needed
set -e # Exit on error
# [TODO: Add your script logic here]
echo "Example script - replace or delete this file"
# Usage:
# ./scripts/example-script.sh [args]