@takaro/gameserver 0.4.4 → 0.4.6

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.
@@ -23,6 +23,7 @@ export declare abstract class TakaroEmitter {
23
23
  emit<E extends keyof IEventMap>(event: E, data: BaseEvent<unknown> | Error): Promise<void>;
24
24
  on<E extends keyof IEventMap>(event: E, listener: IEventMap[E]): this;
25
25
  off<E extends keyof IEventMap>(event: E, listener: IEventMap[E]): this;
26
+ removeAllListeners(): this;
26
27
  hasErrorListener(): boolean;
27
28
  }
28
29
  export declare function getErrorProxyHandler<T extends TakaroEmitter>(emitter: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"TakaroEmitter.d.ts","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAKlC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,8BAAsB,aAAa;IACjC,OAAO,CAAC,WAAW,CAAiE;IAEpF,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;;IAMxB,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK;IA0BhF,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMrE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAatE,gBAAgB;CAGjB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE,CAAC,KAgDvE"}
1
+ {"version":3,"file":"TakaroEmitter.d.ts","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAKlC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,8BAAsB,aAAa;IACjC,OAAO,CAAC,WAAW,CAAiE;IAEpF,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;;IAMxB,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK;IA0BhF,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAMrE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAatE,kBAAkB,IAAI,IAAI;IAK1B,gBAAgB;CAGjB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE,CAAC,KAgDvE"}
@@ -45,6 +45,10 @@ export class TakaroEmitter {
45
45
  }
46
46
  return this;
47
47
  }
48
+ removeAllListeners() {
49
+ this.listenerMap.clear();
50
+ return this;
51
+ }
48
52
  hasErrorListener() {
49
53
  return this.listenerMap.has('error');
50
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TakaroEmitter.js","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TakaroEmitter.js","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takaro/gameserver",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Handles abstraction between Takaro and game servers",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",
@@ -85,6 +85,11 @@ export abstract class TakaroEmitter {
85
85
  return this;
86
86
  }
87
87
 
88
+ removeAllListeners(): this {
89
+ this.listenerMap.clear();
90
+ return this;
91
+ }
92
+
88
93
  hasErrorListener() {
89
94
  return this.listenerMap.has('error');
90
95
  }
@@ -177,4 +177,25 @@ describe('TakaroEmitter', () => {
177
177
  await expect(emitter.foo()).to.eventually.be.rejectedWith('testing error');
178
178
  expect(errorSpy).to.have.been.calledOnce;
179
179
  });
180
+
181
+ it('Should not process events after stop() is called', async () => {
182
+ const emitter = new ExtendedTakaroEmitter();
183
+ const spy = sandbox.spy();
184
+
185
+ emitter.on(GameEvents.LOG_LINE, spy);
186
+
187
+ // Event before stop - should be processed
188
+ await emitter.emit(GameEvents.LOG_LINE, new EventLogLine({ msg: 'before stop' }));
189
+ expect(spy).to.have.been.calledOnce;
190
+
191
+ // Remove all listeners then call stop (like GameServerManager.remove() does during reconnection)
192
+ emitter.removeAllListeners();
193
+ await emitter.stop();
194
+
195
+ // Event after stop - should NOT be processed
196
+ await emitter.emit(GameEvents.LOG_LINE, new EventLogLine({ msg: 'after stop' }));
197
+
198
+ // Now it should pass - listeners were removed so spy still called once
199
+ expect(spy).to.have.been.calledOnce; // Should still be 1, not 2
200
+ });
180
201
  });