import { type ClientEvents } from "discord.js"; import { join } from "node:path"; import { requireDirectory } from "../utils/requireDirectory"; export interface DiscordEvent { event: Event; callback: (...args: ClientEvents[Event]) => Promise; } export function defineEvent( event: Event, callback: (...args: ClientEvents[Event]) => Promise, ): DiscordEvent { return { event: event, callback: callback, }; } export const eventDirectory = join(import.meta.dirname, "events"); export const eventMap = await requireDirectory>(eventDirectory);