@playcademy/sdk 0.7.1 → 0.7.2-beta.1

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 CHANGED
@@ -1645,8 +1645,19 @@ declare abstract class PlaycademyBaseClient {
1645
1645
  }): void;
1646
1646
  /**
1647
1647
  * Registers an event listener for client events.
1648
+ *
1649
+ * @param event - The event name to listen for.
1650
+ * @param callback - The handler invoked when the event fires.
1651
+ * @returns A cleanup function that removes this specific listener.
1652
+ */
1653
+ on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): () => void;
1654
+ /**
1655
+ * Removes a previously registered event listener.
1656
+ *
1657
+ * @param event - The event name to stop listening for.
1658
+ * @param callback - The exact function reference passed to {@link on}.
1648
1659
  */
1649
- on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
1660
+ off<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
1650
1661
  /**
1651
1662
  * Emits an event to all registered listeners.
1652
1663
  */
package/dist/index.js CHANGED
@@ -2766,6 +2766,17 @@ class PlaycademyBaseClient {
2766
2766
  on(event, callback) {
2767
2767
  this.listeners[event] = this.listeners[event] ?? [];
2768
2768
  this.listeners[event].push(callback);
2769
+ return () => this.off(event, callback);
2770
+ }
2771
+ off(event, callback) {
2772
+ const listeners = this.listeners[event];
2773
+ if (!listeners) {
2774
+ return;
2775
+ }
2776
+ this.listeners[event] = listeners.filter((listener) => listener !== callback);
2777
+ if (this.listeners[event]?.length === 0) {
2778
+ delete this.listeners[event];
2779
+ }
2769
2780
  }
2770
2781
  emit(event, payload) {
2771
2782
  (this.listeners[event] ?? []).forEach((listener) => {
@@ -5263,8 +5263,19 @@ declare abstract class PlaycademyBaseClient {
5263
5263
  }): void;
5264
5264
  /**
5265
5265
  * Registers an event listener for client events.
5266
+ *
5267
+ * @param event - The event name to listen for.
5268
+ * @param callback - The handler invoked when the event fires.
5269
+ * @returns A cleanup function that removes this specific listener.
5270
+ */
5271
+ on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): () => void;
5272
+ /**
5273
+ * Removes a previously registered event listener.
5274
+ *
5275
+ * @param event - The event name to stop listening for.
5276
+ * @param callback - The exact function reference passed to {@link on}.
5266
5277
  */
5267
- on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
5278
+ off<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
5268
5279
  /**
5269
5280
  * Emits an event to all registered listeners.
5270
5281
  */
package/dist/internal.js CHANGED
@@ -3719,6 +3719,17 @@ class PlaycademyBaseClient {
3719
3719
  on(event, callback) {
3720
3720
  this.listeners[event] = this.listeners[event] ?? [];
3721
3721
  this.listeners[event].push(callback);
3722
+ return () => this.off(event, callback);
3723
+ }
3724
+ off(event, callback) {
3725
+ const listeners = this.listeners[event];
3726
+ if (!listeners) {
3727
+ return;
3728
+ }
3729
+ this.listeners[event] = listeners.filter((listener) => listener !== callback);
3730
+ if (this.listeners[event]?.length === 0) {
3731
+ delete this.listeners[event];
3732
+ }
3722
3733
  }
3723
3734
  emit(event, payload) {
3724
3735
  (this.listeners[event] ?? []).forEach((listener) => {
package/dist/types.d.ts CHANGED
@@ -5136,8 +5136,19 @@ declare abstract class PlaycademyBaseClient {
5136
5136
  }): void;
5137
5137
  /**
5138
5138
  * Registers an event listener for client events.
5139
+ *
5140
+ * @param event - The event name to listen for.
5141
+ * @param callback - The handler invoked when the event fires.
5142
+ * @returns A cleanup function that removes this specific listener.
5143
+ */
5144
+ on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): () => void;
5145
+ /**
5146
+ * Removes a previously registered event listener.
5147
+ *
5148
+ * @param event - The event name to stop listening for.
5149
+ * @param callback - The exact function reference passed to {@link on}.
5139
5150
  */
5140
- on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
5151
+ off<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
5141
5152
  /**
5142
5153
  * Emits an event to all registered listeners.
5143
5154
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcademy/sdk",
3
- "version": "0.7.1",
3
+ "version": "0.7.2-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {