39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Script to refactor Prisma Client instances to use singleton
|
||
|
|
# Usage: ./scripts/refactor-prisma.sh
|
||
|
|
|
||
|
|
echo "Refactoring Prisma Client instances..."
|
||
|
|
|
||
|
|
# Find all TypeScript files with PrismaClient
|
||
|
|
find src -name "*.ts" -type f | while read file; do
|
||
|
|
# Skip if already using singleton
|
||
|
|
if grep -q "from '@/shared/database/prisma'" "$file"; then
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check if file has "new PrismaClient()"
|
||
|
|
if grep -q "new PrismaClient()" "$file"; then
|
||
|
|
echo "Processing: $file"
|
||
|
|
|
||
|
|
# Create backup
|
||
|
|
cp "$file" "$file.bak"
|
||
|
|
|
||
|
|
# Replace import
|
||
|
|
sed -i "s/import { PrismaClient } from '@prisma\/client';/import prisma from '@\/shared\/database\/prisma';/g" "$file"
|
||
|
|
|
||
|
|
# Remove const prisma = new PrismaClient();
|
||
|
|
sed -i "/const prisma = new PrismaClient();/d" "$file"
|
||
|
|
|
||
|
|
# If PrismaClient is still imported but not used, remove the import line
|
||
|
|
if ! grep -q "PrismaClient" "$file"; then
|
||
|
|
sed -i "/^import.*PrismaClient/d" "$file"
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo " ✓ Refactored: $file"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "Refactoring complete!"
|
||
|
|
echo "Note: Review changes and remove .bak files after verification"
|
||
|
|
|