@impulsedev/chameleon 3.0.0 → 3.1.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/index.d.ts +4 -0
- package/dist/index.js +19 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3123,6 +3123,10 @@ declare class Client<TIntents extends readonly IntentResolvable[] = readonly Int
|
|
|
3123
3123
|
* register an event listener with full type-safety via discriminated unions
|
|
3124
3124
|
*/
|
|
3125
3125
|
on<K extends keyof EventMap>(event: K, listener: (data: EventMap[K]) => void): this;
|
|
3126
|
+
/**
|
|
3127
|
+
* register a one-time event listener that automatically removes itself after the first call
|
|
3128
|
+
*/
|
|
3129
|
+
once<K extends keyof EventMap>(event: K, listener: (data: EventMap[K]) => void): this;
|
|
3126
3130
|
/**
|
|
3127
3131
|
* remove an event listener
|
|
3128
3132
|
*/
|
package/dist/index.js
CHANGED
|
@@ -1338,7 +1338,7 @@ var ChameleonGateway = class {
|
|
|
1338
1338
|
// package.json
|
|
1339
1339
|
var package_default = {
|
|
1340
1340
|
name: "@impulsedev/chameleon",
|
|
1341
|
-
version: "
|
|
1341
|
+
version: "3.0.0",
|
|
1342
1342
|
description: "highly optimized, memory-efficient, and fully type-safe Discord API library",
|
|
1343
1343
|
main: "dist/index.js",
|
|
1344
1344
|
types: "dist/index.d.ts",
|
|
@@ -3567,13 +3567,30 @@ var Client = class {
|
|
|
3567
3567
|
this.listeners.get(event).push(listener);
|
|
3568
3568
|
return this;
|
|
3569
3569
|
}
|
|
3570
|
+
/**
|
|
3571
|
+
* register a one-time event listener that automatically removes itself after the first call
|
|
3572
|
+
*/
|
|
3573
|
+
once(event, listener) {
|
|
3574
|
+
const wrapper = (data) => {
|
|
3575
|
+
this.off(event, wrapper);
|
|
3576
|
+
listener(data);
|
|
3577
|
+
};
|
|
3578
|
+
wrapper.__original = listener;
|
|
3579
|
+
return this.on(event, wrapper);
|
|
3580
|
+
}
|
|
3570
3581
|
/**
|
|
3571
3582
|
* remove an event listener
|
|
3572
3583
|
*/
|
|
3573
3584
|
off(event, listener) {
|
|
3574
3585
|
const handlers = this.listeners.get(event);
|
|
3575
3586
|
if (!handlers) return this;
|
|
3576
|
-
const
|
|
3587
|
+
const castListener = listener;
|
|
3588
|
+
let index = handlers.indexOf(castListener);
|
|
3589
|
+
if (index === -1) {
|
|
3590
|
+
index = handlers.findIndex(
|
|
3591
|
+
(h) => h.__original === listener
|
|
3592
|
+
);
|
|
3593
|
+
}
|
|
3577
3594
|
if (index !== -1) {
|
|
3578
3595
|
handlers.splice(index, 1);
|
|
3579
3596
|
}
|