35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
#
|
||
|
|
# Script to systematically fix common lint errors
|
||
|
|
# Adds return types to React components and fixes type issues
|
||
|
|
#
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
|
|
cd "${PROJECT_ROOT}"
|
||
|
|
|
||
|
|
echo "Fixing lint errors systematically..."
|
||
|
|
|
||
|
|
# Fix all page components - add return types
|
||
|
|
find apps/portal-internal/src/app apps/portal-public/src/app -name "page.tsx" -type f | while read -r file; do
|
||
|
|
if ! grep -q "export default function.*JSX.Element" "$file"; then
|
||
|
|
# Add return type to default export function
|
||
|
|
sed -i 's/export default function \([^(]*\)() {/export default function \1(): JSX.Element {/g' "$file"
|
||
|
|
echo "Fixed: $file"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
# Fix layout files
|
||
|
|
find apps/portal-internal/src/app apps/portal-public/src/app -name "layout.tsx" -type f | while read -r file; do
|
||
|
|
if ! grep -q "export default function.*JSX.Element" "$file"; then
|
||
|
|
sed -i 's/export default function RootLayout({/export default function RootLayout({/g' "$file"
|
||
|
|
sed -i 's/}: {/}: {/g' "$file"
|
||
|
|
sed -i 's/children: ReactNode;$/children: ReactNode;\n}): JSX.Element {/g' "$file"
|
||
|
|
echo "Fixed: $file"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "Lint error fixes applied. Run 'pnpm lint' to verify."
|
||
|
|
|