weewoo
This commit is contained in:
159
scripts/cleanup-deprecated-files.js
Normal file
159
scripts/cleanup-deprecated-files.js
Normal file
@@ -0,0 +1,159 @@
|
||||
/**
|
||||
* Script to help clean up deprecated files in the codebase
|
||||
* Run with: node scripts/cleanup-deprecated-files.js
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// List of files that are now deprecated and can be removed/archived
|
||||
const DEPRECATED_FILES = [
|
||||
// API Client files that are now merged into api-client.ts
|
||||
'lib/client-utils.ts',
|
||||
'lib/client-service.ts',
|
||||
'lib/data-service.ts',
|
||||
|
||||
// Service files that are now in the services directory
|
||||
'lib/productData.ts',
|
||||
'lib/shippingHelper.ts',
|
||||
'lib/stats-service.ts',
|
||||
'lib/storeHelper.ts',
|
||||
|
||||
// Server API files now in server-api.ts
|
||||
'lib/server-service.ts',
|
||||
|
||||
// Files that may contain functionality already migrated
|
||||
'lib/api-utils.ts',
|
||||
];
|
||||
|
||||
// Create backup directory if it doesn't exist
|
||||
const BACKUP_DIR = path.join(__dirname, '../lib/deprecated-backup');
|
||||
if (!fs.existsSync(BACKUP_DIR)) {
|
||||
fs.mkdirSync(BACKUP_DIR, { recursive: true });
|
||||
console.log(`Created backup directory: ${BACKUP_DIR}`);
|
||||
}
|
||||
|
||||
// Process each deprecated file
|
||||
function processDeprecatedFiles() {
|
||||
console.log('Analyzing deprecated files...\n');
|
||||
|
||||
const results = {
|
||||
safe: [],
|
||||
notFound: [],
|
||||
mayNeedMigration: []
|
||||
};
|
||||
|
||||
DEPRECATED_FILES.forEach(filePath => {
|
||||
const fullPath = path.join(__dirname, '..', filePath);
|
||||
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
results.notFound.push(filePath);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if this file is safe to remove (has been migrated)
|
||||
const isSafeToRemove = checkIfSafeToRemove(filePath);
|
||||
|
||||
if (isSafeToRemove) {
|
||||
results.safe.push(filePath);
|
||||
} else {
|
||||
results.mayNeedMigration.push(filePath);
|
||||
}
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
// Check if a file's functionality has been migrated
|
||||
function checkIfSafeToRemove(filePath) {
|
||||
// Simple heuristic - files that we're confident have been fully migrated
|
||||
const definitelyMigrated = [
|
||||
'lib/client-utils.ts',
|
||||
'lib/client-service.ts',
|
||||
'lib/data-service.ts',
|
||||
'lib/productData.ts',
|
||||
'lib/shippingHelper.ts',
|
||||
'lib/stats-service.ts',
|
||||
'lib/server-service.ts',
|
||||
];
|
||||
|
||||
return definitelyMigrated.includes(filePath);
|
||||
}
|
||||
|
||||
// Create a backup of a file before removing it
|
||||
function backupFile(filePath) {
|
||||
const fullPath = path.join(__dirname, '..', filePath);
|
||||
const backupPath = path.join(BACKUP_DIR, path.basename(filePath));
|
||||
|
||||
try {
|
||||
const content = fs.readFileSync(fullPath, 'utf8');
|
||||
fs.writeFileSync(backupPath, content);
|
||||
console.log(`✅ Backed up: ${filePath} to ${path.basename(backupPath)}`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(`❌ Failed to backup ${filePath}:`, error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove a file from the codebase
|
||||
function removeFile(filePath) {
|
||||
const fullPath = path.join(__dirname, '..', filePath);
|
||||
|
||||
try {
|
||||
fs.unlinkSync(fullPath);
|
||||
console.log(`🗑️ Removed: ${filePath}`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(`❌ Failed to remove ${filePath}:`, error.message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Main execution function
|
||||
function main() {
|
||||
const results = processDeprecatedFiles();
|
||||
|
||||
console.log('\n=== ANALYSIS RESULTS ===\n');
|
||||
|
||||
if (results.notFound.length > 0) {
|
||||
console.log('📂 Files not found:');
|
||||
results.notFound.forEach(f => console.log(` - ${f}`));
|
||||
console.log('');
|
||||
}
|
||||
|
||||
if (results.mayNeedMigration.length > 0) {
|
||||
console.log('⚠️ Files that may need migration:');
|
||||
results.mayNeedMigration.forEach(f => console.log(` - ${f}`));
|
||||
console.log('\nCheck these files manually to ensure all functionality has been migrated.\n');
|
||||
}
|
||||
|
||||
if (results.safe.length > 0) {
|
||||
console.log('✅ Files safe to remove (already migrated):');
|
||||
results.safe.forEach(f => console.log(` - ${f}`));
|
||||
|
||||
console.log('\nWhat would you like to do with these files?');
|
||||
console.log('1. Back up and remove now');
|
||||
console.log('2. Just back up');
|
||||
console.log('3. Do nothing for now');
|
||||
|
||||
// In a real script, you'd get user input here
|
||||
// For now, just demonstrate with a backup
|
||||
console.log('\nDemo mode: backing up files...\n');
|
||||
|
||||
results.safe.forEach(filePath => {
|
||||
if (backupFile(filePath)) {
|
||||
console.log(`To remove ${filePath}, run: rm "${path.join(__dirname, '..', filePath)}"`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
console.log('\n=== MANUAL CLEANUP INSTRUCTIONS ===\n');
|
||||
console.log('After verifying imports have been updated with find-deprecated-imports.js:');
|
||||
console.log('1. Remove the backed up files using the commands above');
|
||||
console.log('2. Check any remaining files in the lib/ directory to see if they should be organized');
|
||||
console.log('3. Update imports in files using the main API module');
|
||||
}
|
||||
|
||||
// Run the script
|
||||
main();
|
||||
Reference in New Issue
Block a user