32 lines
886 B
JavaScript
32 lines
886 B
JavaScript
|
|
const fs = require('fs');
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
const scenariosDir = path.join(__dirname, 'scenarios');
|
||
|
|
const files = fs.readdirSync(scenariosDir).filter(f => f.endsWith('.json') && !f.startsWith('_'));
|
||
|
|
|
||
|
|
const menus = {};
|
||
|
|
|
||
|
|
files.forEach(f => {
|
||
|
|
try {
|
||
|
|
const d = JSON.parse(fs.readFileSync(path.join(scenariosDir, f), 'utf8'));
|
||
|
|
const mn = d.menuNavigation || {};
|
||
|
|
if (mn.level1 && mn.level2) {
|
||
|
|
const key = `${mn.level1} > ${mn.level2}`;
|
||
|
|
if (!menus[key]) menus[key] = [];
|
||
|
|
menus[key].push(f);
|
||
|
|
}
|
||
|
|
} catch(e) {}
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log('\n=== Duplicate Menu Scenarios ===\n');
|
||
|
|
let dupeCount = 0;
|
||
|
|
Object.entries(menus)
|
||
|
|
.filter(([k, v]) => v.length > 1)
|
||
|
|
.forEach(([menu, files]) => {
|
||
|
|
console.log(`${menu}:`);
|
||
|
|
files.forEach(f => console.log(` - ${f}`));
|
||
|
|
dupeCount += files.length - 1;
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log(`\nTotal duplicates: ${dupeCount}`);
|