Move all util methods into class

Remove TransformMessageOptions altogether
This commit is contained in:
Schuyler Cebulskie
2017-02-15 22:25:18 -05:00
parent 63ffd8aa7c
commit 7232531eb1
34 changed files with 349 additions and 275 deletions

View File

@@ -1,7 +1,6 @@
const childProcess = require('child_process');
const path = require('path');
const makeError = require('../util/MakeError');
const makePlainError = require('../util/MakePlainError');
const Util = require('../util/Util');
/**
* Represents a Shard spawned by the ShardingManager.
@@ -110,7 +109,7 @@ class Shard {
if (!message || message._eval !== script) return;
this.process.removeListener('message', listener);
this._evals.delete(script);
if (!message._error) resolve(message._result); else reject(makeError(message._error));
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
};
this.process.on('message', listener);
@@ -136,7 +135,7 @@ class Shard {
if (message._sFetchProp) {
this.manager.fetchClientValues(message._sFetchProp).then(
results => this.send({ _sFetchProp: message._sFetchProp, _result: results }),
err => this.send({ _sFetchProp: message._sFetchProp, _error: makePlainError(err) })
err => this.send({ _sFetchProp: message._sFetchProp, _error: Util.makePlainError(err) })
);
return;
}
@@ -145,7 +144,7 @@ class Shard {
if (message._sEval) {
this.manager.broadcastEval(message._sEval).then(
results => this.send({ _sEval: message._sEval, _result: results }),
err => this.send({ _sEval: message._sEval, _error: makePlainError(err) })
err => this.send({ _sEval: message._sEval, _error: Util.makePlainError(err) })
);
return;
}

View File

@@ -1,5 +1,4 @@
const makeError = require('../util/MakeError');
const makePlainError = require('../util/MakePlainError');
const Util = require('../util/Util');
/**
* Helper class for sharded clients spawned as a child process, such as from a ShardingManager
@@ -59,7 +58,7 @@ class ShardClientUtil {
const listener = message => {
if (!message || message._sFetchProp !== prop) return;
process.removeListener('message', listener);
if (!message._error) resolve(message._result); else reject(makeError(message._error));
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
};
process.on('message', listener);
@@ -80,7 +79,7 @@ class ShardClientUtil {
const listener = message => {
if (!message || message._sEval !== script) return;
process.removeListener('message', listener);
if (!message._error) resolve(message._result); else reject(makeError(message._error));
if (!message._error) resolve(message._result); else reject(Util.makeError(message._error));
};
process.on('message', listener);
@@ -107,7 +106,7 @@ class ShardClientUtil {
try {
this._respond('eval', { _eval: message._eval, _result: this.client._eval(message._eval) });
} catch (err) {
this._respond('eval', { _eval: message._eval, _error: makePlainError(err) });
this._respond('eval', { _eval: message._eval, _error: Util.makePlainError(err) });
}
}
}

View File

@@ -1,10 +1,9 @@
const path = require('path');
const fs = require('fs');
const EventEmitter = require('events').EventEmitter;
const mergeDefault = require('../util/MergeDefault');
const Shard = require('./Shard');
const Collection = require('../util/Collection');
const fetchRecommendedShards = require('../util/FetchRecommendedShards');
const Util = require('../util/Util');
/**
* This is a utility class that can be used to help you spawn shards of your Client. Each shard is completely separate
@@ -23,7 +22,7 @@ class ShardingManager extends EventEmitter {
*/
constructor(file, options = {}) {
super();
options = mergeDefault({
options = Util.mergeDefault({
totalShards: 'auto',
respawn: true,
shardArgs: [],
@@ -105,7 +104,7 @@ class ShardingManager extends EventEmitter {
*/
spawn(amount = this.totalShards, delay = 5500) {
if (amount === 'auto') {
return fetchRecommendedShards(this.token).then(count => {
return Util.fetchRecommendedShards(this.token).then(count => {
this.totalShards = count;
return this._spawn(count, delay);
});