Initial commit
This commit is contained in:
62
analyze-routes.js
Normal file
62
analyze-routes.js
Normal file
@@ -0,0 +1,62 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
function analyzeRoutes(dir, basePath = '') {
|
||||
const routes = [];
|
||||
const items = fs.readdirSync(dir);
|
||||
|
||||
for (const item of items) {
|
||||
const fullPath = path.join(dir, item);
|
||||
const stat = fs.statSync(fullPath);
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
// Route groups (main) ne font pas partie de l'URL
|
||||
if (item.startsWith('(') && item.endsWith(')')) {
|
||||
routes.push(...analyzeRoutes(fullPath, basePath));
|
||||
} else {
|
||||
routes.push(...analyzeRoutes(fullPath, path.join(basePath, item)));
|
||||
}
|
||||
} else if (item === 'page.tsx' || item === 'page.js') {
|
||||
const route = basePath || '/';
|
||||
routes.push({
|
||||
route: route === '' ? '/' : route,
|
||||
file: path.relative('app', fullPath)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return routes;
|
||||
}
|
||||
|
||||
console.log('🔍 Analyse des routes Next.js App Router:');
|
||||
console.log('==========================================');
|
||||
|
||||
const routes = analyzeRoutes('app');
|
||||
routes.sort((a, b) => a.route.localeCompare(b.route));
|
||||
|
||||
routes.forEach(({ route, file }) => {
|
||||
console.log(`${route.padEnd(30)} → ${file}`);
|
||||
});
|
||||
|
||||
console.log('\n📋 Résumé:');
|
||||
console.log(`Total des routes: ${routes.length}`);
|
||||
|
||||
// Détecter les conflits
|
||||
const routeMap = {};
|
||||
routes.forEach(({ route, file }) => {
|
||||
if (!routeMap[route]) {
|
||||
routeMap[route] = [];
|
||||
}
|
||||
routeMap[route].push(file);
|
||||
});
|
||||
|
||||
const conflicts = Object.entries(routeMap).filter(([route, files]) => files.length > 1);
|
||||
if (conflicts.length > 0) {
|
||||
console.log('\n⚠️ Conflits détectés:');
|
||||
conflicts.forEach(([route, files]) => {
|
||||
console.log(`${route}:`);
|
||||
files.forEach(file => console.log(` - ${file}`));
|
||||
});
|
||||
} else {
|
||||
console.log('\n✅ Aucun conflit détecté');
|
||||
}
|
||||
Reference in New Issue
Block a user