Skip to content

Commit 6540914

Browse files
refactor(sharding): use switch statement (#8928)
1 parent 627511d commit 6540914

File tree

2 files changed

+60
-45
lines changed

2 files changed

+60
-45
lines changed

packages/discord.js/src/sharding/Shard.js

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@ class Shard extends EventEmitter {
2121
constructor(manager, id) {
2222
super();
2323

24-
if (manager.mode === 'process') childProcess = require('node:child_process');
25-
else if (manager.mode === 'worker') Worker = require('node:worker_threads').Worker;
24+
switch (manager.mode) {
25+
case 'process':
26+
childProcess = require('node:child_process');
27+
break;
28+
case 'worker':
29+
Worker = require('node:worker_threads').Worker;
30+
break;
31+
}
2632

2733
/**
2834
* Manager that created the shard
@@ -112,18 +118,21 @@ class Shard extends EventEmitter {
112118

113119
this._exitListener = this._handleExit.bind(this, undefined, timeout);
114120

115-
if (this.manager.mode === 'process') {
116-
this.process = childProcess
117-
.fork(path.resolve(this.manager.file), this.args, {
118-
env: this.env,
119-
execArgv: this.execArgv,
120-
})
121-
.on('message', this._handleMessage.bind(this))
122-
.on('exit', this._exitListener);
123-
} else if (this.manager.mode === 'worker') {
124-
this.worker = new Worker(path.resolve(this.manager.file), { workerData: this.env })
125-
.on('message', this._handleMessage.bind(this))
126-
.on('exit', this._exitListener);
121+
switch (this.manager.mode) {
122+
case 'process':
123+
this.process = childProcess
124+
.fork(path.resolve(this.manager.file), this.args, {
125+
env: this.env,
126+
execArgv: this.execArgv,
127+
})
128+
.on('message', this._handleMessage.bind(this))
129+
.on('exit', this._exitListener);
130+
break;
131+
case 'worker':
132+
this.worker = new Worker(path.resolve(this.manager.file), { workerData: this.env })
133+
.on('message', this._handleMessage.bind(this))
134+
.on('exit', this._exitListener);
135+
break;
127136
}
128137

129138
this._evals.clear();

packages/discord.js/src/sharding/ShardClientUtil.js

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,32 @@ class ShardClientUtil {
2929
*/
3030
this.parentPort = null;
3131

32-
if (mode === 'process') {
33-
process.on('message', this._handleMessage.bind(this));
34-
client.on('ready', () => {
35-
process.send({ _ready: true });
36-
});
37-
client.on('disconnect', () => {
38-
process.send({ _disconnect: true });
39-
});
40-
client.on('reconnecting', () => {
41-
process.send({ _reconnecting: true });
42-
});
43-
} else if (mode === 'worker') {
44-
this.parentPort = require('node:worker_threads').parentPort;
45-
this.parentPort.on('message', this._handleMessage.bind(this));
46-
client.on('ready', () => {
47-
this.parentPort.postMessage({ _ready: true });
48-
});
49-
client.on('disconnect', () => {
50-
this.parentPort.postMessage({ _disconnect: true });
51-
});
52-
client.on('reconnecting', () => {
53-
this.parentPort.postMessage({ _reconnecting: true });
54-
});
32+
switch (mode) {
33+
case 'process':
34+
process.on('message', this._handleMessage.bind(this));
35+
client.on('ready', () => {
36+
process.send({ _ready: true });
37+
});
38+
client.on('disconnect', () => {
39+
process.send({ _disconnect: true });
40+
});
41+
client.on('reconnecting', () => {
42+
process.send({ _reconnecting: true });
43+
});
44+
break;
45+
case 'worker':
46+
this.parentPort = require('node:worker_threads').parentPort;
47+
this.parentPort.on('message', this._handleMessage.bind(this));
48+
client.on('ready', () => {
49+
this.parentPort.postMessage({ _ready: true });
50+
});
51+
client.on('disconnect', () => {
52+
this.parentPort.postMessage({ _disconnect: true });
53+
});
54+
client.on('reconnecting', () => {
55+
this.parentPort.postMessage({ _reconnecting: true });
56+
});
57+
break;
5558
}
5659
}
5760

@@ -81,14 +84,17 @@ class ShardClientUtil {
8184
*/
8285
send(message) {
8386
return new Promise((resolve, reject) => {
84-
if (this.mode === 'process') {
85-
process.send(message, err => {
86-
if (err) reject(err);
87-
else resolve();
88-
});
89-
} else if (this.mode === 'worker') {
90-
this.parentPort.postMessage(message);
91-
resolve();
87+
switch (this.mode) {
88+
case 'process':
89+
process.send(message, err => {
90+
if (err) reject(err);
91+
else resolve();
92+
});
93+
break;
94+
case 'worker':
95+
this.parentPort.postMessage(message);
96+
resolve();
97+
break;
9298
}
9399
});
94100
}

0 commit comments

Comments
 (0)