Files

56 lines
1.7 KiB
JavaScript

const path = require('node:path');
const { loadCommandModules } = require('../loaders/commands');
const { loadEventModules } = require('../loaders/events');
const { createDashboardApp } = require('../dashboardServer');
const commandsPath = path.join(__dirname, '..', 'commands');
const eventsPath = path.join(__dirname, '..', 'events');
const commandResult = loadCommandModules(commandsPath);
const eventResult = loadEventModules(eventsPath);
let hasFailures = false;
const printFailures = (heading, values) => {
if (!values || values.length === 0) {
return;
}
hasFailures = true;
console.error(heading);
for (const value of values) {
console.error(`- ${value}`);
}
};
printFailures('Invalid command modules:', commandResult.invalidCommands);
printFailures(
'Duplicate command names:',
commandResult.duplicateCommands.map(
({ commandName, filePath, existingFilePath }) =>
`${commandName}: ${filePath} conflicts with ${existingFilePath}`,
),
);
printFailures(
'Command load errors:',
commandResult.loadErrors.map(({ filePath, error }) => `${filePath}: ${error.message}`),
);
printFailures('Invalid event modules:', eventResult.invalidEvents);
printFailures(
'Event load errors:',
eventResult.loadErrors.map(({ filePath, error }) => `${filePath}: ${error.message}`),
);
if (typeof createDashboardApp !== 'function') {
hasFailures = true;
console.error('Dashboard app factory is not exported correctly.');
}
if (!hasFailures) {
console.log(
`Verification passed: ${commandResult.commands.length} commands and ${eventResult.events.length} events loaded successfully.`,
);
}
process.exit(hasFailures ? 1 : 0);