@takaro/gameserver 0.4.3 → 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.
- package/dist/TakaroEmitter.d.ts +1 -0
- package/dist/TakaroEmitter.d.ts.map +1 -1
- package/dist/TakaroEmitter.js +6 -1
- package/dist/TakaroEmitter.js.map +1 -1
- package/dist/gameservers/7d2d/emitter.d.ts +1 -0
- package/dist/gameservers/7d2d/emitter.d.ts.map +1 -1
- package/dist/gameservers/7d2d/emitter.js +3 -2
- package/dist/gameservers/7d2d/emitter.js.map +1 -1
- package/dist/gameservers/rust/emitter.d.ts +1 -0
- package/dist/gameservers/rust/emitter.d.ts.map +1 -1
- package/dist/gameservers/rust/emitter.js +3 -3
- package/dist/gameservers/rust/emitter.js.map +1 -1
- package/package.json +1 -1
- package/src/TakaroEmitter.ts +7 -1
- package/src/TakaroEmitter.unit.test.ts +74 -0
- package/src/gameservers/7d2d/emitter.ts +3 -2
- package/src/gameservers/7d2d/emitter.unit.test.ts +117 -0
- package/src/gameservers/rust/emitter.ts +3 -3
- package/src/gameservers/rust/emitter.unit.test.ts +95 -0
package/dist/TakaroEmitter.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/TakaroEmitter.js
CHANGED
|
@@ -34,7 +34,8 @@ export class TakaroEmitter {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
on(event, listener) {
|
|
37
|
-
this.listenerMap.
|
|
37
|
+
const existing = this.listenerMap.get(event) || [];
|
|
38
|
+
this.listenerMap.set(event, [...existing, listener]);
|
|
38
39
|
return this;
|
|
39
40
|
}
|
|
40
41
|
off(event, listener) {
|
|
@@ -44,6 +45,10 @@ export class TakaroEmitter {
|
|
|
44
45
|
}
|
|
45
46
|
return this;
|
|
46
47
|
}
|
|
48
|
+
removeAllListeners() {
|
|
49
|
+
this.listenerMap.clear();
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
47
52
|
hasErrorListener() {
|
|
48
53
|
return this.listenerMap.has('error');
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TakaroEmitter.js","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAQL,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAgBpC,MAAM,OAAgB,aAAa;IAMjC;QALQ,gBAAW,GAAuD,IAAI,GAAG,EAAE,CAAC;QAMlF,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAA4B,KAAQ,EAAE,IAAgC;QAC9E,IAAI,CAAC;YACH,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO;YAEzC,mDAAmD;YACnD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC/D,yBAAyB;YAC3B,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,sFAAsF;oBACtF,kEAAkE;oBAClE,sDAAsD;oBACtD,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,EAAE,CAA4B,KAAQ,EAAE,QAAsB;QAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TakaroEmitter.js","sourceRoot":"","sources":["../src/TakaroEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
14
14
|
private checkInterval;
|
|
15
15
|
private lastMessageTimestamp;
|
|
16
16
|
private keepAliveTimeout;
|
|
17
|
+
private boundListener;
|
|
17
18
|
constructor(config: SdtdConnectionInfo);
|
|
18
19
|
get url(): string;
|
|
19
20
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/gameservers/7d2d/emitter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAYvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,UAAU,gBAAiB,SAAQ,UAAU;IAC3C,GAAG,EAAE,MAAM,CAAC;CACb;AA8BD,qBAAa,qBAAsB,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/gameservers/7d2d/emitter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAYvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,UAAU,gBAAiB,SAAQ,UAAU;IAC3C,GAAG,EAAE,MAAM,CAAC;CACb;AA8BD,qBAAa,qBAAsB,SAAQ,aAAa;IAY1C,OAAO,CAAC,MAAM;IAX1B,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,IAAI,CAAiB;IAE7B,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,oBAAoB,CAAc;IAC1C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,aAAa,CAA+C;gBAEhD,MAAM,EAAE,kBAAkB;IAK9C,IAAI,GAAG,WAKN;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,YAAY,CAAC,OAAO,EAAE,gBAAgB;YA2C9B,qBAAqB;YA0BrB,wBAAwB;YA0BxB,iBAAiB;YAqDjB,iBAAiB;YAwBjB,kBAAkB;IAuB1B,QAAQ,CAAC,IAAI,EAAE,YAAY;CAWlC"}
|
|
@@ -35,6 +35,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
35
35
|
this.recentMessages = new Set(); // To track recent messages
|
|
36
36
|
this.lastMessageTimestamp = Date.now();
|
|
37
37
|
this.keepAliveTimeout = ms('5minutes');
|
|
38
|
+
this.boundListener = (data) => this.listener(data);
|
|
38
39
|
this.sdtd = new SevenDaysToDie(config, {});
|
|
39
40
|
}
|
|
40
41
|
get url() {
|
|
@@ -62,7 +63,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
62
63
|
'X-SDTD-API-SECRET': this.config.adminToken,
|
|
63
64
|
},
|
|
64
65
|
});
|
|
65
|
-
this.eventSource.addEventListener('logLine',
|
|
66
|
+
this.eventSource.addEventListener('logLine', this.boundListener);
|
|
66
67
|
this.eventSource.onerror = (e) => {
|
|
67
68
|
this.logger.error('Event source error', e);
|
|
68
69
|
return reject(e);
|
|
@@ -83,7 +84,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
83
84
|
if (this.checkInterval) {
|
|
84
85
|
clearInterval(this.checkInterval);
|
|
85
86
|
}
|
|
86
|
-
this.eventSource.removeEventListener('logLine', this.
|
|
87
|
+
this.eventSource.removeEventListener('logLine', this.boundListener);
|
|
87
88
|
this.eventSource.close();
|
|
88
89
|
}
|
|
89
90
|
async parseMessage(logLine) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/gameservers/7d2d/emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/gameservers/7d2d/emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class RustEmitter extends TakaroEmitter {
|
|
|
16
16
|
private config;
|
|
17
17
|
private ws;
|
|
18
18
|
private log;
|
|
19
|
+
private boundListener;
|
|
19
20
|
constructor(config: RustConnectionInfo);
|
|
20
21
|
static getClient(config: RustConnectionInfo): Promise<WebSocket>;
|
|
21
22
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/gameservers/rust/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAavD,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAY,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/gameservers/rust/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAavD,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAY,SAAQ,aAAa;IAKhC,OAAO,CAAC,MAAM;IAJ1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,aAAa,CAA8C;gBAE/C,MAAM,EAAE,kBAAkB;WAIjC,SAAS,CAAC,MAAM,EAAE,kBAAkB;IAsC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,YAAY,CAAC,CAAC,EAAE,SAAS;YA4CjB,qBAAqB;YAQrB,wBAAwB;YAQxB,iBAAiB;YAYjB,iBAAiB;YAWjB,kBAAkB;IAQ1B,QAAQ,CAAC,IAAI,EAAE,MAAM;CAS5B"}
|
|
@@ -22,6 +22,7 @@ export class RustEmitter extends TakaroEmitter {
|
|
|
22
22
|
this.config = config;
|
|
23
23
|
this.ws = null;
|
|
24
24
|
this.log = logger('rust:ws');
|
|
25
|
+
this.boundListener = (m) => this.listener(m.toString());
|
|
25
26
|
}
|
|
26
27
|
static async getClient(config) {
|
|
27
28
|
const log = logger('rust:ws');
|
|
@@ -59,11 +60,10 @@ export class RustEmitter extends TakaroEmitter {
|
|
|
59
60
|
}
|
|
60
61
|
async start() {
|
|
61
62
|
this.ws = await RustEmitter.getClient(this.config);
|
|
62
|
-
this.ws?.on('message',
|
|
63
|
-
this.listener(m.toString());
|
|
64
|
-
});
|
|
63
|
+
this.ws?.on('message', this.boundListener);
|
|
65
64
|
}
|
|
66
65
|
async stop() {
|
|
66
|
+
this.ws?.off('message', this.boundListener);
|
|
67
67
|
this.ws?.close();
|
|
68
68
|
this.log.debug('Websocket connection has been closed');
|
|
69
69
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/gameservers/rust/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,GAEX,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AASD,IAAK,aAMJ;AAND,WAAK,aAAa;IAChB,yEAAoB,CAAA;IACpB,+EAAuB,CAAA;IACvB,iEAAgB,CAAA;IAChB,iEAAgB,CAAA;IAChB,mEAAiB,CAAA;AACnB,CAAC,EANI,aAAa,KAAb,aAAa,QAMjB;AAED,MAAM,OAAO,WAAY,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/gameservers/rust/emitter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/TakaroEmitter.ts
CHANGED
|
@@ -67,7 +67,8 @@ export abstract class TakaroEmitter {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
on<E extends keyof IEventMap>(event: E, listener: IEventMap[E]): this {
|
|
70
|
-
this.listenerMap.
|
|
70
|
+
const existing = this.listenerMap.get(event) || [];
|
|
71
|
+
this.listenerMap.set(event, [...existing, listener]);
|
|
71
72
|
return this;
|
|
72
73
|
}
|
|
73
74
|
|
|
@@ -84,6 +85,11 @@ export abstract class TakaroEmitter {
|
|
|
84
85
|
return this;
|
|
85
86
|
}
|
|
86
87
|
|
|
88
|
+
removeAllListeners(): this {
|
|
89
|
+
this.listenerMap.clear();
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
|
|
87
93
|
hasErrorListener() {
|
|
88
94
|
return this.listenerMap.has('error');
|
|
89
95
|
}
|
|
@@ -67,6 +67,59 @@ describe('TakaroEmitter', () => {
|
|
|
67
67
|
expect(spy).to.have.been.calledOnce;
|
|
68
68
|
});
|
|
69
69
|
|
|
70
|
+
it('Can have multiple listeners for the same event', async () => {
|
|
71
|
+
const emitter = new ExtendedTakaroEmitter();
|
|
72
|
+
const spy1 = sandbox.spy();
|
|
73
|
+
const spy2 = sandbox.spy();
|
|
74
|
+
const spy3 = sandbox.spy();
|
|
75
|
+
|
|
76
|
+
emitter.on(GameEvents.LOG_LINE, spy1);
|
|
77
|
+
emitter.on(GameEvents.LOG_LINE, spy2);
|
|
78
|
+
emitter.on(GameEvents.LOG_LINE, spy3);
|
|
79
|
+
|
|
80
|
+
await emitter.emit(
|
|
81
|
+
GameEvents.LOG_LINE,
|
|
82
|
+
new EventLogLine({
|
|
83
|
+
msg: 'test',
|
|
84
|
+
}),
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
expect(spy1).to.have.been.calledOnce;
|
|
88
|
+
expect(spy2).to.have.been.calledOnce;
|
|
89
|
+
expect(spy3).to.have.been.calledOnce;
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it('Can remove one listener without affecting others', async () => {
|
|
93
|
+
const emitter = new ExtendedTakaroEmitter();
|
|
94
|
+
const spy1 = sandbox.spy();
|
|
95
|
+
const spy2 = sandbox.spy();
|
|
96
|
+
|
|
97
|
+
emitter.on(GameEvents.LOG_LINE, spy1);
|
|
98
|
+
emitter.on(GameEvents.LOG_LINE, spy2);
|
|
99
|
+
|
|
100
|
+
await emitter.emit(
|
|
101
|
+
GameEvents.LOG_LINE,
|
|
102
|
+
new EventLogLine({
|
|
103
|
+
msg: 'test',
|
|
104
|
+
}),
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
expect(spy1).to.have.been.calledOnce;
|
|
108
|
+
expect(spy2).to.have.been.calledOnce;
|
|
109
|
+
|
|
110
|
+
emitter.off(GameEvents.LOG_LINE, spy1);
|
|
111
|
+
|
|
112
|
+
await emitter.emit(
|
|
113
|
+
GameEvents.LOG_LINE,
|
|
114
|
+
new EventLogLine({
|
|
115
|
+
msg: 'test',
|
|
116
|
+
}),
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
expect(spy1).to.have.been.calledOnce;
|
|
120
|
+
expect(spy2).to.have.been.calledTwice;
|
|
121
|
+
});
|
|
122
|
+
|
|
70
123
|
it('Errors happening inside extended class do not interrupt flow of events', async () => {
|
|
71
124
|
const emitter = new ExtendedTakaroEmitter();
|
|
72
125
|
const spy = sandbox.spy();
|
|
@@ -124,4 +177,25 @@ describe('TakaroEmitter', () => {
|
|
|
124
177
|
await expect(emitter.foo()).to.eventually.be.rejectedWith('testing error');
|
|
125
178
|
expect(errorSpy).to.have.been.calledOnce;
|
|
126
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
|
+
});
|
|
127
201
|
});
|
|
@@ -59,6 +59,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
59
59
|
private checkInterval: NodeJS.Timeout;
|
|
60
60
|
private lastMessageTimestamp = Date.now();
|
|
61
61
|
private keepAliveTimeout = ms('5minutes');
|
|
62
|
+
private boundListener = (data: MessageEvent) => this.listener(data);
|
|
62
63
|
|
|
63
64
|
constructor(private config: SdtdConnectionInfo) {
|
|
64
65
|
super();
|
|
@@ -93,7 +94,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
93
94
|
},
|
|
94
95
|
});
|
|
95
96
|
|
|
96
|
-
this.eventSource.addEventListener('logLine',
|
|
97
|
+
this.eventSource.addEventListener('logLine', this.boundListener);
|
|
97
98
|
|
|
98
99
|
this.eventSource.onerror = (e) => {
|
|
99
100
|
this.logger.error('Event source error', e);
|
|
@@ -116,7 +117,7 @@ export class SevenDaysToDieEmitter extends TakaroEmitter {
|
|
|
116
117
|
if (this.checkInterval) {
|
|
117
118
|
clearInterval(this.checkInterval);
|
|
118
119
|
}
|
|
119
|
-
this.eventSource.removeEventListener('logLine', this.
|
|
120
|
+
this.eventSource.removeEventListener('logLine', this.boundListener);
|
|
120
121
|
this.eventSource.close();
|
|
121
122
|
}
|
|
122
123
|
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { SevenDaysToDieEmitter } from './emitter.js';
|
|
3
|
+
import { SdtdConnectionInfo } from './connectionInfo.js';
|
|
4
|
+
import { SevenDaysToDie } from './index.js';
|
|
5
|
+
import { expect, sandbox } from '@takaro/test';
|
|
6
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
7
|
+
import EventSource from 'eventsource';
|
|
8
|
+
|
|
9
|
+
describe('SevenDaysToDieEmitter', () => {
|
|
10
|
+
let emitter: SevenDaysToDieEmitter;
|
|
11
|
+
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
// Stub the SevenDaysToDie constructor to prevent network calls
|
|
14
|
+
sandbox.stub(SevenDaysToDie.prototype, 'steamIdOrXboxToGameId').resolves(undefined);
|
|
15
|
+
|
|
16
|
+
emitter = new SevenDaysToDieEmitter(
|
|
17
|
+
new SdtdConnectionInfo({
|
|
18
|
+
host: 'localhost:8080',
|
|
19
|
+
adminUser: 'test',
|
|
20
|
+
adminToken: 'test',
|
|
21
|
+
useTls: false,
|
|
22
|
+
useLegacy: false,
|
|
23
|
+
useCPM: false,
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
|
+
// Add error handler to prevent unhandled errors
|
|
27
|
+
emitter.on('error', () => {
|
|
28
|
+
// Ignore errors in tests
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
afterEach(async () => {
|
|
33
|
+
if (emitter) {
|
|
34
|
+
try {
|
|
35
|
+
await emitter.stop();
|
|
36
|
+
} catch {
|
|
37
|
+
// Ignore errors during cleanup
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
sandbox.restore();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it.skip('Does not accumulate listeners on start/stop/start cycle', async () => {
|
|
44
|
+
// Track listeners
|
|
45
|
+
const listeners: Array<(data: any) => void> = [];
|
|
46
|
+
|
|
47
|
+
// Create a mock EventSource
|
|
48
|
+
class MockEventSource {
|
|
49
|
+
onerror: any = null;
|
|
50
|
+
onopen: any = null;
|
|
51
|
+
|
|
52
|
+
constructor(..._args: any[]) {
|
|
53
|
+
//No-op constructor - onopen will be set by the emitter
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
addEventListener(event: string, listener: any) {
|
|
57
|
+
listeners.push(listener);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
removeEventListener(event: string, listener: any) {
|
|
61
|
+
const index = listeners.indexOf(listener);
|
|
62
|
+
if (index > -1) {
|
|
63
|
+
listeners.splice(index, 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
close() {
|
|
68
|
+
// Mock close
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Stub EventSource constructor
|
|
73
|
+
const OriginalEventSource = EventSource;
|
|
74
|
+
const MockEventSourceClass = class extends MockEventSource {
|
|
75
|
+
constructor(...args: any[]) {
|
|
76
|
+
super(...args);
|
|
77
|
+
// Immediately trigger onopen to resolve the Promise.race in start()
|
|
78
|
+
const triggerOpen = () => {
|
|
79
|
+
if (this.onopen) {
|
|
80
|
+
this.onopen();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
queueMicrotask(triggerOpen.bind(this));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
(global as any).EventSource = MockEventSourceClass;
|
|
87
|
+
|
|
88
|
+
try {
|
|
89
|
+
// First start
|
|
90
|
+
await emitter.start();
|
|
91
|
+
expect(listeners.length).to.equal(1, 'Should have 1 listener after start');
|
|
92
|
+
|
|
93
|
+
// Stop
|
|
94
|
+
await emitter.stop();
|
|
95
|
+
expect(listeners.length).to.equal(0, 'Should have 0 listeners after stop');
|
|
96
|
+
|
|
97
|
+
// Second start (this is where the bug would cause accumulation)
|
|
98
|
+
await emitter.start();
|
|
99
|
+
expect(listeners.length).to.equal(1, 'Should have 1 listener after restart (not 2)');
|
|
100
|
+
|
|
101
|
+
// Third start/stop cycle to be extra sure
|
|
102
|
+
await emitter.stop();
|
|
103
|
+
expect(listeners.length).to.equal(0, 'Should have 0 listeners after second stop');
|
|
104
|
+
|
|
105
|
+
await emitter.start();
|
|
106
|
+
expect(listeners.length).to.equal(1, 'Should have 1 listener after second restart (not 2 or 3)');
|
|
107
|
+
} finally {
|
|
108
|
+
// Restore EventSource
|
|
109
|
+
(global as any).EventSource = OriginalEventSource;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('Uses the same function reference for addEventListener and removeEventListener', () => {
|
|
114
|
+
// Verify boundListener is defined as a class field
|
|
115
|
+
expect((emitter as any).boundListener).to.be.a('function');
|
|
116
|
+
});
|
|
117
|
+
});
|
|
@@ -38,6 +38,7 @@ enum RustTypesType {
|
|
|
38
38
|
export class RustEmitter extends TakaroEmitter {
|
|
39
39
|
private ws: WebSocket | null = null;
|
|
40
40
|
private log = logger('rust:ws');
|
|
41
|
+
private boundListener = (m: Buffer) => this.listener(m.toString());
|
|
41
42
|
|
|
42
43
|
constructor(private config: RustConnectionInfo) {
|
|
43
44
|
super();
|
|
@@ -84,12 +85,11 @@ export class RustEmitter extends TakaroEmitter {
|
|
|
84
85
|
async start(): Promise<void> {
|
|
85
86
|
this.ws = await RustEmitter.getClient(this.config);
|
|
86
87
|
|
|
87
|
-
this.ws?.on('message',
|
|
88
|
-
this.listener(m.toString());
|
|
89
|
-
});
|
|
88
|
+
this.ws?.on('message', this.boundListener);
|
|
90
89
|
}
|
|
91
90
|
|
|
92
91
|
async stop(): Promise<void> {
|
|
92
|
+
this.ws?.off('message', this.boundListener);
|
|
93
93
|
this.ws?.close();
|
|
94
94
|
this.log.debug('Websocket connection has been closed');
|
|
95
95
|
return;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { RustEmitter } from './emitter.js';
|
|
3
|
+
import { RustConnectionInfo } from './connectionInfo.js';
|
|
4
|
+
import { expect, sandbox } from '@takaro/test';
|
|
5
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
6
|
+
import WebSocket from 'ws';
|
|
7
|
+
|
|
8
|
+
describe('RustEmitter', () => {
|
|
9
|
+
let emitter: RustEmitter;
|
|
10
|
+
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
emitter = new RustEmitter(
|
|
13
|
+
new RustConnectionInfo({
|
|
14
|
+
host: 'localhost',
|
|
15
|
+
rconPort: '28016',
|
|
16
|
+
rconPassword: 'test',
|
|
17
|
+
useTls: false,
|
|
18
|
+
}),
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
afterEach(async () => {
|
|
23
|
+
if (emitter) {
|
|
24
|
+
try {
|
|
25
|
+
await emitter.stop();
|
|
26
|
+
} catch {
|
|
27
|
+
// Ignore errors during cleanup
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
sandbox.restore();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('Does not accumulate listeners on start/stop/start cycle', async () => {
|
|
34
|
+
// Mock WebSocket to prevent actual network calls
|
|
35
|
+
const mockWs = {
|
|
36
|
+
on: sandbox.spy(),
|
|
37
|
+
off: sandbox.spy(),
|
|
38
|
+
close: sandbox.spy(),
|
|
39
|
+
readyState: WebSocket.OPEN,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// Stub getClient to return mock WebSocket
|
|
43
|
+
sandbox.stub(RustEmitter, 'getClient').resolves(mockWs as any);
|
|
44
|
+
|
|
45
|
+
// First start
|
|
46
|
+
await emitter.start();
|
|
47
|
+
|
|
48
|
+
// Verify listener was added once
|
|
49
|
+
expect(mockWs.on).to.have.been.calledOnce;
|
|
50
|
+
expect(mockWs.on).to.have.been.calledWith('message');
|
|
51
|
+
|
|
52
|
+
const firstAddedListener = mockWs.on.getCall(0).args[1];
|
|
53
|
+
|
|
54
|
+
// Stop
|
|
55
|
+
await emitter.stop();
|
|
56
|
+
|
|
57
|
+
// Verify listener was removed
|
|
58
|
+
expect(mockWs.off).to.have.been.calledOnce;
|
|
59
|
+
expect(mockWs.off).to.have.been.calledWith('message');
|
|
60
|
+
|
|
61
|
+
const removedListener = mockWs.off.getCall(0).args[1];
|
|
62
|
+
|
|
63
|
+
// Verify the same function reference was used for on and off
|
|
64
|
+
expect(firstAddedListener).to.equal(
|
|
65
|
+
removedListener,
|
|
66
|
+
'on() and off() must use the same function reference to properly remove the listener',
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
expect(mockWs.close).to.have.been.calledOnce;
|
|
70
|
+
|
|
71
|
+
// Reset the mock for second start
|
|
72
|
+
mockWs.on.resetHistory();
|
|
73
|
+
mockWs.off.resetHistory();
|
|
74
|
+
|
|
75
|
+
// Second start
|
|
76
|
+
await emitter.start();
|
|
77
|
+
|
|
78
|
+
// Verify listener was added again
|
|
79
|
+
expect(mockWs.on).to.have.been.calledOnce;
|
|
80
|
+
expect(mockWs.on).to.have.been.calledWith('message');
|
|
81
|
+
|
|
82
|
+
const secondAddedListener = mockWs.on.getCall(0).args[1];
|
|
83
|
+
|
|
84
|
+
// Verify the same listener reference is reused
|
|
85
|
+
expect(firstAddedListener).to.equal(
|
|
86
|
+
secondAddedListener,
|
|
87
|
+
'The same listener reference must be reused across restarts to prevent accumulation',
|
|
88
|
+
);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('Uses the same function reference for on and off', () => {
|
|
92
|
+
// Verify boundListener is defined as a class field
|
|
93
|
+
expect((emitter as any).boundListener).to.be.a('function');
|
|
94
|
+
});
|
|
95
|
+
});
|