56 lines
1.7 KiB
JavaScript
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);
|