fix: implement stopIffail in reloadAll

This commit is contained in:
MARCROCK22 2024-05-21 21:19:23 -04:00
parent 4e4ab20769
commit 0b60586847
2 changed files with 19 additions and 9 deletions

View File

@ -196,7 +196,7 @@ export class ComponentHandler extends BaseHandler {
x.__filePath?.endsWith(path) ||
x.__filePath === path,
);
if (!component || !component.__filePath) return null;
if (!component?.__filePath) return null;
delete require.cache[component.__filePath];
const index = this.client.components.commands.findIndex(x => x.__filePath === component.__filePath!);
if (index === -1) return null;
@ -208,11 +208,15 @@ export class ComponentHandler extends BaseHandler {
return imported;
}
async reloadAll() {
if (!this.client.components) return;
for (const i of this.client.components.commands) {
if (!i.__filePath) return this.logger.warn('Unknown command dont have __filePath property', i);
await this.reload(i.__filePath);
async reloadAll(stopIfFail = true) {
for (const i of this.commands) {
try {
await this.reload(i.__filePath ?? '');
} catch (e) {
if (stopIfFail) {
throw e;
}
}
}
}

View File

@ -92,7 +92,7 @@ export class EventHandler extends BaseHandler {
async reload(name: ClientNameEvents) {
const eventName = ReplaceRegex.snake(name).toUpperCase() as GatewayEvents;
const event = this.values[eventName];
if (!event) return null;
if (!event?.__filePath) return null;
delete require.cache[event.__filePath];
const imported = await magicImport(event.__filePath).then(x => x.default ?? x);
imported.__filePath = event.__filePath;
@ -100,9 +100,15 @@ export class EventHandler extends BaseHandler {
return imported;
}
async reloadAll() {
async reloadAll(stopIfFail = true) {
for (const i in this.values) {
await this.reload(ReplaceRegex.camel(i) as ClientNameEvents);
try {
await this.reload(ReplaceRegex.camel(i) as ClientNameEvents);
} catch (e) {
if (stopIfFail) {
throw e;
}
}
}
}