@xpresser/events-server
Version:
Xpresser's Official Events Server Plugin.
56 lines (55 loc) • 2.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
const EventsServerDb_1 = __importDefault(require("../src/EventsServerDb"));
module.exports = async (args, { helper }) => {
const $ = helper.$;
const [command, id] = args;
await $.startEServerCommunicator(false);
const eventsServerDB = new EventsServerDb_1.default($);
const events = eventsServerDB.failedEvents();
if (command) {
if (command === "list") {
const list = {};
for (const event of events.keys()) {
list[event] = events.path(event).omit("retries", "error.stack");
}
console.dir(list, { depth: 10 });
return $.exit();
}
else if (command === "events") {
// Get unique array of events
const uniqueEvents = [];
for (const event of events.values()) {
if (!uniqueEvents.includes(event.event)) {
uniqueEvents.push(event.event);
}
}
return $.logAndExit(uniqueEvents);
}
else if (command === "delete") {
if (!id) {
return $.logErrorAndExit("Please provide an event id to delete");
}
if (!events.has(id)) {
return $.logErrorAndExit(`Failed event with id: "${id}" not found`);
}
events.unset(id);
eventsServerDB.save(false, true);
$.logSuccess(`Event "${id}" has been removed from failed events`);
return $.exit();
}
else if (command === "flush") {
const oldLen = events.length();
eventsServerDB.data.set("failed", {});
eventsServerDB.save(false, true);
$.logSuccess(`${oldLen} events cleared`);
return $.exit();
}
else {
return $.logErrorAndExit(`Command "${command}" not found`);
}
}
$.logAndExit(`You have ${events.length()} failed events.`);
};