89 lines
2.9 KiB
JavaScript
89 lines
2.9 KiB
JavaScript
/**
|
|
* Script to find deprecated imports in the codebase
|
|
* Run with: node scripts/find-deprecated-imports.js
|
|
*/
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const { execSync } = require('child_process');
|
|
|
|
// Deprecated patterns to search for
|
|
const DEPRECATED_PATTERNS = [
|
|
"from '@/lib/client-utils'",
|
|
"from '@/lib/client-service'",
|
|
"from '@/lib/data-service'",
|
|
"from '@/lib/server-service'",
|
|
"from '@/lib/productData'",
|
|
"from '@/lib/shippingHelper'",
|
|
"from '@/lib/storeHelper'",
|
|
"from '@/lib/stats-service'",
|
|
// Add other deprecated import patterns here
|
|
];
|
|
|
|
// Run grep to find deprecated imports
|
|
function findDeprecatedImports() {
|
|
console.log('Searching for deprecated imports...\n');
|
|
|
|
DEPRECATED_PATTERNS.forEach(pattern => {
|
|
try {
|
|
// Using grep to find the pattern in all TypeScript/JavaScript files
|
|
const result = execSync(`grep -r "${pattern}" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" .`, { encoding: 'utf8' });
|
|
|
|
if (result) {
|
|
console.log(`\n== Found deprecated imports: ${pattern} ==`);
|
|
console.log(result);
|
|
console.log(`\n== Suggested replacement: ==`);
|
|
suggestReplacement(pattern);
|
|
}
|
|
} catch (error) {
|
|
// grep returns non-zero exit code if no matches found
|
|
if (error.status !== 1) {
|
|
console.error(`Error searching for ${pattern}:`, error.message);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function suggestReplacement(pattern) {
|
|
// Extract the import path
|
|
const match = pattern.match(/from '([^']+)'/);
|
|
if (!match) return;
|
|
|
|
const oldPath = match[1];
|
|
let replacement = '';
|
|
|
|
// Generate replacement suggestions based on deprecated path
|
|
switch (oldPath) {
|
|
case '@/lib/client-utils':
|
|
case '@/lib/client-service':
|
|
case '@/lib/data-service':
|
|
replacement = "import { clientFetch, fetchClient } from '@/lib/api';";
|
|
break;
|
|
case '@/lib/server-service':
|
|
replacement = "import { fetchServer } from '@/lib/api'; // Only use in Server Components";
|
|
break;
|
|
case '@/lib/productData':
|
|
replacement = "import { getProducts, createProduct, updateProduct, deleteProduct } from '@/lib/api';";
|
|
break;
|
|
case '@/lib/shippingHelper':
|
|
replacement = "import { getShippingOptions, createShippingOption, updateShippingOption, deleteShippingOption } from '@/lib/api';";
|
|
break;
|
|
case '@/lib/storeHelper':
|
|
replacement = "import { clientFetch } from '@/lib/api';";
|
|
break;
|
|
case '@/lib/stats-service':
|
|
replacement = "import { getPlatformStats } from '@/lib/api';";
|
|
break;
|
|
default:
|
|
replacement = "import from '@/lib/api';";
|
|
}
|
|
|
|
console.log(replacement);
|
|
console.log("\nReplace the specific imports with the corresponding ones from @/lib/api");
|
|
}
|
|
|
|
// Run the search
|
|
findDeprecatedImports();
|
|
|
|
// Uncomment the following line to run the remove-old-files.js script
|
|
// node scripts/remove-old-files.js
|