Files
discordeno/template/nodejs/Managers/EventManager.js
meister03 a9938b1fcf fix: nodejs guide template. (#2433)
Co-authored-by: New Author Name <email@address.com>
2022-09-07 14:00:29 -05:00

33 lines
850 B
JavaScript

const fs = require("fs");
const path = require("path");
const resolveFolder = (folderName) => path.resolve(__dirname, ".", folderName);
const EventEmitter = require("events");
class EventManager extends EventEmitter {
constructor() {
super();
this.cache = new Map();
this.allEvents = {};
}
load(options = {}) {
const eventsFolder = resolveFolder("../events");
let i = 0;
fs.readdirSync(eventsFolder).map(async (file) => {
if (!file.endsWith(".js")) return;
i++;
const fileName = path.join(eventsFolder, file);
const event = require(fileName);
const eventName = file.split(".")[0];
this.allEvents[`${eventName}`] = (...args) => {
this.emit(eventName, ...args);
return event(...args);
};
});
return this.allEvents;
}
}
module.exports = EventManager;