Downgrade to v13
[vi] cảm giác đau khổ
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
const EventEmitter = require('node:events');
|
||||
const path = require('node:path');
|
||||
const process = require('node:process');
|
||||
const { setTimeout, clearTimeout } = require('node:timers');
|
||||
const { setTimeout } = require('node:timers');
|
||||
const { setTimeout: sleep } = require('node:timers/promises');
|
||||
const { Error } = require('../errors');
|
||||
const Util = require('../util/Util');
|
||||
@@ -249,18 +249,14 @@ class Shard extends EventEmitter {
|
||||
const listener = message => {
|
||||
if (message?._fetchProp !== prop) return;
|
||||
child.removeListener('message', listener);
|
||||
this.decrementMaxListeners(child);
|
||||
this._fetches.delete(prop);
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
|
||||
this.incrementMaxListeners(child);
|
||||
child.on('message', listener);
|
||||
|
||||
this.send({ _fetchProp: prop }).catch(err => {
|
||||
child.removeListener('message', listener);
|
||||
this.decrementMaxListeners(child);
|
||||
this._fetches.delete(prop);
|
||||
reject(err);
|
||||
});
|
||||
@@ -292,18 +288,14 @@ class Shard extends EventEmitter {
|
||||
const listener = message => {
|
||||
if (message?._eval !== _eval) return;
|
||||
child.removeListener('message', listener);
|
||||
this.decrementMaxListeners(child);
|
||||
this._evals.delete(_eval);
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
|
||||
this.incrementMaxListeners(child);
|
||||
child.on('message', listener);
|
||||
|
||||
this.send({ _eval }).catch(err => {
|
||||
child.removeListener('message', listener);
|
||||
this.decrementMaxListeners(child);
|
||||
this._evals.delete(_eval);
|
||||
reject(err);
|
||||
});
|
||||
@@ -414,30 +406,6 @@ class Shard extends EventEmitter {
|
||||
|
||||
if (respawn) this.spawn(timeout).catch(err => this.emit('error', err));
|
||||
}
|
||||
|
||||
/**
|
||||
* Increments max listeners by one for a given emitter, if they are not zero.
|
||||
* @param {EventEmitter|process} emitter The emitter that emits the events.
|
||||
* @private
|
||||
*/
|
||||
incrementMaxListeners(emitter) {
|
||||
const maxListeners = emitter.getMaxListeners();
|
||||
if (maxListeners !== 0) {
|
||||
emitter.setMaxListeners(maxListeners + 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Decrements max listeners by one for a given emitter, if they are not zero.
|
||||
* @param {EventEmitter|process} emitter The emitter that emits the events.
|
||||
* @private
|
||||
*/
|
||||
decrementMaxListeners(emitter) {
|
||||
const maxListeners = emitter.getMaxListeners();
|
||||
if (maxListeners !== 0) {
|
||||
emitter.setMaxListeners(maxListeners - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Shard;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
const process = require('node:process');
|
||||
const { Error } = require('../errors');
|
||||
const Events = require('../util/Events');
|
||||
const { Events } = require('../util/Constants');
|
||||
const Util = require('../util/Util');
|
||||
|
||||
/**
|
||||
@@ -111,16 +111,13 @@ class ShardClientUtil {
|
||||
const listener = message => {
|
||||
if (message?._sFetchProp !== prop || message._sFetchPropShard !== shard) return;
|
||||
parent.removeListener('message', listener);
|
||||
this.decrementMaxListeners(parent);
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
this.incrementMaxListeners(parent);
|
||||
parent.on('message', listener);
|
||||
|
||||
this.send({ _sFetchProp: prop, _sFetchPropShard: shard }).catch(err => {
|
||||
parent.removeListener('message', listener);
|
||||
this.decrementMaxListeners(parent);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
@@ -149,15 +146,13 @@ class ShardClientUtil {
|
||||
const listener = message => {
|
||||
if (message?._sEval !== script || message._sEvalShard !== options.shard) return;
|
||||
parent.removeListener('message', listener);
|
||||
this.decrementMaxListeners(parent);
|
||||
if (!message._error) resolve(message._result);
|
||||
else reject(Util.makeError(message._error));
|
||||
};
|
||||
this.incrementMaxListeners(parent);
|
||||
parent.on('message', listener);
|
||||
|
||||
this.send({ _sEval: script, _sEvalShard: options.shard }).catch(err => {
|
||||
parent.removeListener('message', listener);
|
||||
this.decrementMaxListeners(parent);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
@@ -210,13 +205,10 @@ class ShardClientUtil {
|
||||
error.stack = err.stack;
|
||||
/**
|
||||
* Emitted when the client encounters an error.
|
||||
* <warn>Errors thrown within this event do not have a catch handler, it is
|
||||
* recommended to not use async functions as `error` event handlers. See the
|
||||
* [Node.js docs](https://nodejs.org/api/events.html#capture-rejections-of-promises) for details.</warn>
|
||||
* @event Client#error
|
||||
* @param {Error} error The error encountered
|
||||
*/
|
||||
this.client.emit(Events.Error, error);
|
||||
this.client.emit(Events.ERROR, error);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -231,7 +223,7 @@ class ShardClientUtil {
|
||||
this._singleton = new this(client, mode);
|
||||
} else {
|
||||
client.emit(
|
||||
Events.Warn,
|
||||
Events.WARN,
|
||||
'Multiple clients created in child process/worker; only the first will handle sharding helpers.',
|
||||
);
|
||||
}
|
||||
@@ -249,30 +241,6 @@ class ShardClientUtil {
|
||||
if (shard < 0) throw new Error('SHARDING_SHARD_MISCALCULATION', shard, guildId, shardCount);
|
||||
return shard;
|
||||
}
|
||||
|
||||
/**
|
||||
* Increments max listeners by one for a given emitter, if they are not zero.
|
||||
* @param {EventEmitter|process} emitter The emitter that emits the events.
|
||||
* @private
|
||||
*/
|
||||
incrementMaxListeners(emitter) {
|
||||
const maxListeners = emitter.getMaxListeners();
|
||||
if (maxListeners !== 0) {
|
||||
emitter.setMaxListeners(maxListeners + 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Decrements max listeners by one for a given emitter, if they are not zero.
|
||||
* @param {EventEmitter|process} emitter The emitter that emits the events.
|
||||
* @private
|
||||
*/
|
||||
decrementMaxListeners(emitter) {
|
||||
const maxListeners = emitter.getMaxListeners();
|
||||
if (maxListeners !== 0) {
|
||||
emitter.setMaxListeners(maxListeners - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ShardClientUtil;
|
||||
|
@@ -36,7 +36,7 @@ class ShardingManager extends EventEmitter {
|
||||
* @property {boolean} [respawn=true] Whether shards should automatically respawn upon exiting
|
||||
* @property {string[]} [shardArgs=[]] Arguments to pass to the shard script when spawning
|
||||
* (only available when mode is set to 'process')
|
||||
* @property {string[]} [execArgv=[]] Arguments to pass to the shard script executable when spawning
|
||||
* @property {string} [execArgv=[]] Arguments to pass to the shard script executable when spawning
|
||||
* (only available when mode is set to 'process')
|
||||
* @property {string} [token] Token to use for automatic shard count and passing to shards
|
||||
*/
|
||||
|
Reference in New Issue
Block a user