mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-13 18:13:29 +01:00
chore: consistency/prettier (#3852)
* chore: consistency/prettier * chore: rebase * chore: rebase * chore: include typings * fix: include typings file in prettier lint-staged
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
const EventEmitter = require('events');
|
||||
const path = require('path');
|
||||
const Util = require('../util/Util');
|
||||
const { Error } = require('../errors');
|
||||
const Util = require('../util/Util');
|
||||
let childProcess = null;
|
||||
let Worker = null;
|
||||
|
||||
@@ -111,9 +111,11 @@ class Shard extends EventEmitter {
|
||||
if (this.worker) throw new Error('SHARDING_WORKER_EXISTS', this.id);
|
||||
|
||||
if (this.manager.mode === 'process') {
|
||||
this.process = childProcess.fork(path.resolve(this.manager.file), this.args, {
|
||||
env: this.env, execArgv: this.execArgv,
|
||||
})
|
||||
this.process = childProcess
|
||||
.fork(path.resolve(this.manager.file), this.args, {
|
||||
env: this.env,
|
||||
execArgv: this.execArgv,
|
||||
})
|
||||
.on('message', this._handleMessage.bind(this))
|
||||
.on('exit', this._exitListener);
|
||||
} else if (this.manager.mode === 'worker') {
|
||||
@@ -203,7 +205,8 @@ class Shard extends EventEmitter {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.process) {
|
||||
this.process.send(message, err => {
|
||||
if (err) reject(err); else resolve(this);
|
||||
if (err) reject(err);
|
||||
else resolve(this);
|
||||
});
|
||||
} else {
|
||||
this.worker.postMessage(message);
|
||||
@@ -261,7 +264,8 @@ class Shard extends EventEmitter {
|
||||
if (!message || message._eval !== script) return;
|
||||
child.removeListener('message', listener);
|
||||
this._evals.delete(script);
|
||||
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
child.on('message', listener);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const Util = require('../util/Util');
|
||||
const { Events } = require('../util/Constants');
|
||||
const Util = require('../util/Util');
|
||||
|
||||
/**
|
||||
* Helper class for sharded clients spawned as a child process/worker, such as from a {@link ShardingManager}.
|
||||
@@ -33,15 +33,27 @@ class ShardClientUtil {
|
||||
|
||||
if (mode === 'process') {
|
||||
process.on('message', this._handleMessage.bind(this));
|
||||
client.on('ready', () => { process.send({ _ready: true }); });
|
||||
client.on('disconnect', () => { process.send({ _disconnect: true }); });
|
||||
client.on('reconnecting', () => { process.send({ _reconnecting: true }); });
|
||||
client.on('ready', () => {
|
||||
process.send({ _ready: true });
|
||||
});
|
||||
client.on('disconnect', () => {
|
||||
process.send({ _disconnect: true });
|
||||
});
|
||||
client.on('reconnecting', () => {
|
||||
process.send({ _reconnecting: true });
|
||||
});
|
||||
} else if (mode === 'worker') {
|
||||
this.parentPort = require('worker_threads').parentPort;
|
||||
this.parentPort.on('message', this._handleMessage.bind(this));
|
||||
client.on('ready', () => { this.parentPort.postMessage({ _ready: true }); });
|
||||
client.on('disconnect', () => { this.parentPort.postMessage({ _disconnect: true }); });
|
||||
client.on('reconnecting', () => { this.parentPort.postMessage({ _reconnecting: true }); });
|
||||
client.on('ready', () => {
|
||||
this.parentPort.postMessage({ _ready: true });
|
||||
});
|
||||
client.on('disconnect', () => {
|
||||
this.parentPort.postMessage({ _disconnect: true });
|
||||
});
|
||||
client.on('reconnecting', () => {
|
||||
this.parentPort.postMessage({ _reconnecting: true });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +84,8 @@ class ShardClientUtil {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.mode === 'process') {
|
||||
process.send(message, err => {
|
||||
if (err) reject(err); else resolve();
|
||||
if (err) reject(err);
|
||||
else resolve();
|
||||
});
|
||||
} else if (this.mode === 'worker') {
|
||||
this.parentPort.postMessage(message);
|
||||
@@ -98,7 +111,8 @@ class ShardClientUtil {
|
||||
const listener = message => {
|
||||
if (!message || message._sFetchProp !== prop) return;
|
||||
parent.removeListener('message', listener);
|
||||
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
parent.on('message', listener);
|
||||
|
||||
@@ -127,7 +141,8 @@ class ShardClientUtil {
|
||||
const listener = message => {
|
||||
if (!message || message._sEval !== script) return;
|
||||
parent.removeListener('message', listener);
|
||||
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
parent.on('message', listener);
|
||||
|
||||
@@ -201,8 +216,10 @@ class ShardClientUtil {
|
||||
if (!this._singleton) {
|
||||
this._singleton = new this(client, mode);
|
||||
} else {
|
||||
client.emit(Events.WARN,
|
||||
'Multiple clients created in child process/worker; only the first will handle sharding helpers.');
|
||||
client.emit(
|
||||
Events.WARN,
|
||||
'Multiple clients created in child process/worker; only the first will handle sharding helpers.',
|
||||
);
|
||||
}
|
||||
return this._singleton;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const EventEmitter = require('events');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const Shard = require('./Shard');
|
||||
const { Error, TypeError, RangeError } = require('../errors');
|
||||
const Collection = require('../util/Collection');
|
||||
const Util = require('../util/Util');
|
||||
const { Error, TypeError, RangeError } = require('../errors');
|
||||
|
||||
/**
|
||||
* This is a utility class that makes multi-process sharding of a bot an easy and painless experience.
|
||||
@@ -41,14 +41,17 @@ class ShardingManager extends EventEmitter {
|
||||
*/
|
||||
constructor(file, options = {}) {
|
||||
super();
|
||||
options = Util.mergeDefault({
|
||||
totalShards: 'auto',
|
||||
mode: 'process',
|
||||
respawn: true,
|
||||
shardArgs: [],
|
||||
execArgv: [],
|
||||
token: process.env.DISCORD_TOKEN,
|
||||
}, options);
|
||||
options = Util.mergeDefault(
|
||||
{
|
||||
totalShards: 'auto',
|
||||
mode: 'process',
|
||||
respawn: true,
|
||||
shardArgs: [],
|
||||
execArgv: [],
|
||||
token: process.env.DISCORD_TOKEN,
|
||||
},
|
||||
options,
|
||||
);
|
||||
|
||||
/**
|
||||
* Path to the shard script file
|
||||
@@ -71,8 +74,11 @@ class ShardingManager extends EventEmitter {
|
||||
}
|
||||
this.shardList = [...new Set(this.shardList)];
|
||||
if (this.shardList.length < 1) throw new RangeError('CLIENT_INVALID_OPTION', 'shardList', 'at least 1 ID.');
|
||||
if (this.shardList.some(shardID => typeof shardID !== 'number' || isNaN(shardID) ||
|
||||
!Number.isInteger(shardID) || shardID < 0)) {
|
||||
if (
|
||||
this.shardList.some(
|
||||
shardID => typeof shardID !== 'number' || isNaN(shardID) || !Number.isInteger(shardID) || shardID < 0,
|
||||
)
|
||||
) {
|
||||
throw new TypeError('CLIENT_INVALID_OPTION', 'shardList', 'an array of positive integers.');
|
||||
}
|
||||
}
|
||||
@@ -186,8 +192,11 @@ class ShardingManager extends EventEmitter {
|
||||
}
|
||||
|
||||
if (this.shardList.some(shardID => shardID >= amount)) {
|
||||
throw new RangeError('CLIENT_INVALID_OPTION', 'Amount of shards',
|
||||
'bigger than the highest shardID in the shardList option.');
|
||||
throw new RangeError(
|
||||
'CLIENT_INVALID_OPTION',
|
||||
'Amount of shards',
|
||||
'bigger than the highest shardID in the shardList option.',
|
||||
);
|
||||
}
|
||||
|
||||
// Spawn the shards
|
||||
|
||||
Reference in New Issue
Block a user