discord-bot-shared 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/event-manager.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ type EventHandler<E extends ValidEvents = ValidEvents> = (client: Client, ...arg
|
|
|
7
7
|
type EventHandlerMap = { [E in ValidEvents]: EventHandler<E> };
|
|
8
8
|
interface SingleEvent<E extends ValidEvents = ValidEvents> {
|
|
9
9
|
event: E;
|
|
10
|
+
once?: boolean;
|
|
10
11
|
handler: EventHandlerMap[E];
|
|
11
12
|
}
|
|
12
13
|
declare class EventManager {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-manager.d.ts","names":[],"sources":["../src/event-manager.ts"],"mappings":";;;;KAOK,WAAA,SAAoB,YAAY;AAAA,KAEhC,YAAA,WAAuB,WAAA,GAAc,WAAA,KACxC,MAAA,EAAQ,MAAA,KACL,IAAA,EAAM,YAAA,CAAa,CAAA,aACZ,OAAA;AAAA,KAEP,eAAA,WACG,WAAA,GAAc,YAAA,CAAa,CAAA;AAAA,UAGzB,WAAA,WAAsB,WAAA,GAAc,WAAA;EAC5C,KAAA,EAAO,CAAA;EACP,OAAA,EAAS,eAAA,CAAgB,CAAA;AAAA;AAAA,cAGd,YAAA;EAAA;cAIQ,OAAA,EAAS,cAAA;EAOrB,GAAA,WAAc,WAAA,EAAa,KAAA,EAAO,WAAA,CAAY,CAAA;EAI9C,OAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"event-manager.d.ts","names":[],"sources":["../src/event-manager.ts"],"mappings":";;;;KAOK,WAAA,SAAoB,YAAY;AAAA,KAEhC,YAAA,WAAuB,WAAA,GAAc,WAAA,KACxC,MAAA,EAAQ,MAAA,KACL,IAAA,EAAM,YAAA,CAAa,CAAA,aACZ,OAAA;AAAA,KAEP,eAAA,WACG,WAAA,GAAc,YAAA,CAAa,CAAA;AAAA,UAGzB,WAAA,WAAsB,WAAA,GAAc,WAAA;EAC5C,KAAA,EAAO,CAAA;EACP,IAAA;EACA,OAAA,EAAS,eAAA,CAAgB,CAAA;AAAA;AAAA,cAGd,YAAA;EAAA;cAIQ,OAAA,EAAS,cAAA;EAOrB,GAAA,WAAc,WAAA,EAAa,KAAA,EAAO,WAAA,CAAY,CAAA;EAI9C,OAAA;AAAA;AAAA,KAqBG,KAAA,WACJ,WAAA,GAAc,WAAA,CAAY,CAAA,IAChC,WAAA"}
|
package/dist/event-manager.js
CHANGED
|
@@ -19,7 +19,8 @@ var EventManager = class {
|
|
|
19
19
|
const eventHandlerResult = await attempt(async () => singleEvent.handler(this.#discord.client, ...args));
|
|
20
20
|
if (isErr(eventHandlerResult)) return err(`failed to handle event '${singleEvent.event}'`, eventHandlerResult);
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
const listenerType = singleEvent.once ? "once" : "on";
|
|
23
|
+
this.#discord.client[listenerType](singleEvent.event, (...args) => void handleCallback(async () => handleEvent(...args)));
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-manager.js","names":["#events","#discord","#listen"],"sources":["../src/event-manager.ts"],"sourcesContent":["import type { Client, ClientEvents } from \"discord.js\"\nimport type { Result } from \"ts-explicit-errors\"\nimport { attempt, err, isErr } from \"ts-explicit-errors\"\n\nimport type { DiscordContext } from \"#/bot.ts\"\nimport { handleCallback } from \"#/util.ts\"\n\ntype ValidEvents = keyof ClientEvents\n\ntype EventHandler<E extends ValidEvents = ValidEvents> = (\n client: Client,\n ...args: ClientEvents[E]\n) => void | Promise<void>\n\ntype EventHandlerMap = {\n [E in ValidEvents]: EventHandler<E>\n}\n\ninterface SingleEvent<E extends ValidEvents = ValidEvents> {\n event: E\n handler: EventHandlerMap[E]\n}\n\nexport class EventManager {\n readonly #events: SingleEvent[] = []\n readonly #discord: DiscordContext\n\n public constructor(discord: DiscordContext) {\n this.#discord = discord\n }\n\n /*\n * Add an event listener\n */\n public add<N extends ValidEvents>(event: SingleEvent<N>): void {\n this.#events.push(event)\n }\n\n public _listen(): void {\n for (const singleEvent of this.#events) this.#listen(singleEvent)\n\n console.log(`Listening for (${this.#events.length.toString()}) events.`)\n }\n\n // generic over E so `event` and `handler` stay correlated, see microsoft/TypeScript#47109\n #listen<E extends ValidEvents>(singleEvent: SingleEvent<E>): void {\n const handleEvent = async (...args: ClientEvents[E]): Promise<Result> => {\n const eventHandlerResult = await attempt(async () => singleEvent.handler(this.#discord.client, ...args))\n if (isErr(eventHandlerResult)) return err(`failed to handle event '${singleEvent.event}'`, eventHandlerResult)\n }\n\n this.#discord.client
|
|
1
|
+
{"version":3,"file":"event-manager.js","names":["#events","#discord","#listen"],"sources":["../src/event-manager.ts"],"sourcesContent":["import type { Client, ClientEvents } from \"discord.js\"\nimport type { Result } from \"ts-explicit-errors\"\nimport { attempt, err, isErr } from \"ts-explicit-errors\"\n\nimport type { DiscordContext } from \"#/bot.ts\"\nimport { handleCallback } from \"#/util.ts\"\n\ntype ValidEvents = keyof ClientEvents\n\ntype EventHandler<E extends ValidEvents = ValidEvents> = (\n client: Client,\n ...args: ClientEvents[E]\n) => void | Promise<void>\n\ntype EventHandlerMap = {\n [E in ValidEvents]: EventHandler<E>\n}\n\ninterface SingleEvent<E extends ValidEvents = ValidEvents> {\n event: E\n once?: boolean\n handler: EventHandlerMap[E]\n}\n\nexport class EventManager {\n readonly #events: SingleEvent[] = []\n readonly #discord: DiscordContext\n\n public constructor(discord: DiscordContext) {\n this.#discord = discord\n }\n\n /*\n * Add an event listener\n */\n public add<N extends ValidEvents>(event: SingleEvent<N>): void {\n this.#events.push(event)\n }\n\n public _listen(): void {\n for (const singleEvent of this.#events) this.#listen(singleEvent)\n\n console.log(`Listening for (${this.#events.length.toString()}) events.`)\n }\n\n // generic over E so `event` and `handler` stay correlated, see microsoft/TypeScript#47109\n #listen<E extends ValidEvents>(singleEvent: SingleEvent<E>): void {\n const handleEvent = async (...args: ClientEvents[E]): Promise<Result> => {\n const eventHandlerResult = await attempt(async () => singleEvent.handler(this.#discord.client, ...args))\n if (isErr(eventHandlerResult)) return err(`failed to handle event '${singleEvent.event}'`, eventHandlerResult)\n }\n\n const listenerType = singleEvent.once ? \"once\" : \"on\"\n this.#discord.client[listenerType](\n singleEvent.event,\n (...args) => void handleCallback(async () => handleEvent(...args)),\n )\n }\n}\n\nexport type Event = {\n [E in ValidEvents]: SingleEvent<E>\n}[ValidEvents]\n"],"mappings":";;;AAwBA,IAAa,eAAb,MAA0B;CACxB,UAAkC,CAAC;CACnC;CAEA,YAAmB,SAAyB;EAC1C,KAAKC,WAAW;CAClB;CAKA,IAAkC,OAA6B;EAC7D,KAAKD,QAAQ,KAAK,KAAK;CACzB;CAEA,UAAuB;EACrB,KAAK,MAAM,eAAe,KAAKA,SAAS,KAAKE,QAAQ,WAAW;EAEhE,QAAQ,IAAI,kBAAkB,KAAKF,QAAQ,OAAO,SAAS,EAAE,UAAU;CACzE;CAGA,QAA+B,aAAmC;EAChE,MAAM,cAAc,OAAO,GAAG,SAA2C;GACvE,MAAM,qBAAqB,MAAM,QAAQ,YAAY,YAAY,QAAQ,KAAKC,SAAS,QAAQ,GAAG,IAAI,CAAC;GACvG,IAAI,MAAM,kBAAkB,GAAG,OAAO,IAAI,2BAA2B,YAAY,MAAM,IAAI,kBAAkB;EAC/G;EAEA,MAAM,eAAe,YAAY,OAAO,SAAS;EACjD,KAAKA,SAAS,OAAO,aAAa,CAChC,YAAY,QACX,GAAG,SAAS,KAAK,eAAe,YAAY,YAAY,GAAG,IAAI,CAAC,CACnE;CACF;AACF"}
|