Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.

Commit 46651bf

Browse files
authored
refactor(WebsocketShard): gateway events (#88)
* refactor(WebsocketConnection): change disconnecting/reconnecting into destroy * chore: bump dapi types
1 parent f5add5b commit 46651bf

File tree

8 files changed

+29
-26
lines changed

8 files changed

+29
-26
lines changed

libs/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
},
3737
"dependencies": {
3838
"@cordis/error": "workspace:^0.3.0",
39-
"discord-api-types": "^0.20.1",
39+
"discord-api-types": "^0.20.2",
4040
"tslib": "^2.3.0"
4141
}
4242
}

libs/gateway/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"@cordis/queue": "workspace:^0.3.0",
4545
"@cordis/rest": "workspace:^0.3.0",
4646
"common-tags": "^1.8.0",
47-
"discord-api-types": "^0.20.1",
47+
"discord-api-types": "^0.20.2",
4848
"tslib": "^2.3.0",
4949
"ws": "^7.5.3"
5050
}

libs/gateway/src/websocket/Cluster.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,10 @@ export interface Cluster {
4646
*/
4747
on(event: 'open', listener: (id: string | number) => any): this;
4848
/**
49-
* Fired when one of the shards begins reconnecting
49+
* Fired when one of the shards is destroyed
5050
* @event
5151
*/
52-
on(event: 'reconnecting', listener: (id: string | number) => any): this;
53-
/**
54-
* Fired when one of the shards begins disconnecting
55-
* @event
56-
*/
57-
on(event: 'disconnecting', listener: (id: string | number) => any): this;
52+
on(event: 'destroy', listener: (reconnecting: boolean, fatal: boolean, id: string | number) => any): this;
5853
/**
5954
* Provides information useful for debugging
6055
* @event
@@ -76,19 +71,23 @@ export interface Cluster {
7671
on(event: 'dispatch', listener: (data: GatewayDispatchPayload, id: string | number) => any): this;
7772

7873
/** @internal */
79-
once(event: 'open' | 'reconnecting' | 'disconnecting', listener: (id: string | number) => any): this;
74+
once(event: 'open', listener: (id: string | number) => any): this;
8075
/** @internal */
8176
once(event: 'debug' | 'error', listener: (info: any, id: string | number) => any): this;
8277
/** @internal */
78+
once(event: 'destroy', listener: (reconnecting: boolean, fatal: boolean, id: string | number) => any): this;
79+
/** @internal */
8380
once(event: 'ready', listener: () => any): this;
8481
/** @internal */
8582
once(event: 'dispatch', listener: (data: GatewayDispatchPayload, id: string | number) => any): this;
8683

8784
/** @internal */
88-
emit(event: 'open' | 'reconnecting' | 'disconnecting', id: string | number): boolean;
85+
emit(event: 'open', id: string | number): boolean;
8986
/** @internal */
9087
emit(event: 'debug' | 'error', info: any, id: string | number): boolean;
9188
/** @internal */
89+
emit(event: 'destroy', reconnecting: boolean, fatal: boolean, id: string | number): boolean;
90+
/** @internal */
9291
emit(event: 'ready'): boolean;
9392
/** @internal */
9493
emit(event: 'dispatch', data: GatewayDispatchPayload, id: string | number): boolean;

libs/gateway/src/websocket/WebsocketConnection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ export class WebsocketConnection {
394394
code : ${code}
395395
`);
396396

397-
this.cluster.emit(reconnect ? 'reconnecting' : 'disconnecting', this.id);
397+
this.cluster.emit('destroy', reconnect, fatal, this.id);
398398
this.status = WebsocketConnectionStatus.disconnecting;
399399

400400
if (!reason) {

libs/rest/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"devDependencies": {
3333
"@types/node": "^14.17.5",
3434
"@types/node-fetch": "^2.5.11",
35-
"discord-api-types": "^0.20.1",
35+
"discord-api-types": "^0.20.2",
3636
"fetch-blob": "^2.1.2",
3737
"typescript": "^4.3.5"
3838
},

libs/util/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"dependencies": {
3737
"@cordis/error": "workspace:^0.3.0",
3838
"@cordis/rest": "workspace:^0.3.0",
39-
"discord-api-types": "^0.20.1",
39+
"discord-api-types": "^0.20.2",
4040
"tslib": "^2.3.0"
4141
}
4242
}

pnpm-lock.yaml

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/gateway/src/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@ const main = async () => {
1616
const cluster = new Cluster(config.auth, config.ws);
1717

1818
cluster
19-
.on('disconnecting', id => console.log(`[DISCONNECTING]: Shard id ${id}`))
20-
.on('reconnecting', id => console.log(`[RECONNECTING]: Shard id ${id}`))
19+
.on('destroy', (reconnecting, fatal, id) => {
20+
console.log(`[DESTROYED]: Shard id ${id}; Fatal: ${fatal}; Reconnecting: ${reconnecting}`);
21+
if (!reconnecting) {
22+
process.exit(1);
23+
}
24+
})
2125
.on('open', id => console.log(`[CONNECTION OPEN]: Shard id ${id}`))
2226
.on('error', (err, id) => console.error(`[SHARD ERROR]: Shard id ${id}`, err))
2327
.on('ready', () => console.log('[READY]: All shards have fully connected'))

0 commit comments

Comments
 (0)