refactor: use rest args where possible.

This commit is contained in:
Christopher Jeffrey 2017-06-30 15:47:33 -07:00
parent e89f285e9a
commit fdb668aea3
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
6 changed files with 62 additions and 158 deletions

View File

@ -532,23 +532,17 @@ HTTPBase.prototype._initSockets = function _initSockets() {
* @param {...Object} args
*/
HTTPBase.prototype.to = function to(name) {
HTTPBase.prototype.to = function to(name, ...args) {
let list = this.channels.get(name);
let args;
if (!list)
return;
assert(list.size > 0);
args = new Array(arguments.length - 1);
for (let i = 1; i < arguments.length; i++)
args[i - 1] = arguments[i];
for (let item = list.head; item; item = item.next) {
let socket = item.value;
socket.emit.apply(socket, args);
socket.emit(...args);
}
};
@ -1607,16 +1601,11 @@ WebSocket.prototype.emit = function emit() {
return this.socket.emit.apply(this.socket, arguments);
};
WebSocket.prototype.call = function call() {
WebSocket.prototype.call = function call(...args) {
let socket = this.socket;
let args = new Array(arguments.length);
for (let i = 0; i < arguments.length; i++)
args[i] = arguments[i];
return new Promise((resolve, reject) => {
args.push(co.wrap(resolve, reject));
socket.emit.apply(socket, args);
socket.emit(...args);
});
};

View File

@ -388,8 +388,8 @@ Logger.prototype.setLevel = function setLevel(name) {
* @param {...Object} args
*/
Logger.prototype.error = function error(err) {
let args;
Logger.prototype.error = function error(...args) {
let err = args[0];
if (this.level < Logger.levels.ERROR)
return;
@ -397,11 +397,6 @@ Logger.prototype.error = function error(err) {
if (err instanceof Error)
return this.logError(Logger.levels.ERROR, null, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.ERROR, null, args);
};
@ -411,8 +406,8 @@ Logger.prototype.error = function error(err) {
* @param {...Object} args
*/
Logger.prototype.warning = function warning(err) {
let args;
Logger.prototype.warning = function warning(...args) {
let err = args[0];
if (this.level < Logger.levels.WARNING)
return;
@ -420,11 +415,6 @@ Logger.prototype.warning = function warning(err) {
if (err instanceof Error)
return this.logError(Logger.levels.WARNING, null, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.WARNING, null, args);
};
@ -434,8 +424,8 @@ Logger.prototype.warning = function warning(err) {
* @param {...Object} args
*/
Logger.prototype.info = function info(err) {
let args;
Logger.prototype.info = function info(...args) {
let err = args[0];
if (this.level < Logger.levels.INFO)
return;
@ -443,11 +433,6 @@ Logger.prototype.info = function info(err) {
if (err instanceof Error)
return this.logError(Logger.levels.INFO, null, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.INFO, null, args);
};
@ -457,8 +442,8 @@ Logger.prototype.info = function info(err) {
* @param {...Object} args
*/
Logger.prototype.debug = function debug(err) {
let args;
Logger.prototype.debug = function debug(...args) {
let err = args[0];
if (this.level < Logger.levels.DEBUG)
return;
@ -466,11 +451,6 @@ Logger.prototype.debug = function debug(err) {
if (err instanceof Error)
return this.logError(Logger.levels.DEBUG, null, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.DEBUG, null, args);
};
@ -480,8 +460,8 @@ Logger.prototype.debug = function debug(err) {
* @param {...Object} args
*/
Logger.prototype.spam = function spam(err) {
let args;
Logger.prototype.spam = function spam(...args) {
let err = args[0];
if (this.level < Logger.levels.SPAM)
return;
@ -489,11 +469,6 @@ Logger.prototype.spam = function spam(err) {
if (err instanceof Error)
return this.logError(Logger.levels.SPAM, null, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.SPAM, null, args);
};
@ -744,11 +719,6 @@ LoggerContext.prototype.error = function error(err) {
if (err instanceof Error)
return this.logError(Logger.levels.ERROR, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.ERROR, args);
};
@ -770,8 +740,8 @@ LoggerContext.prototype.logError = function logError(level, err) {
* @param {...Object} args
*/
LoggerContext.prototype.warning = function warning(err) {
let args;
LoggerContext.prototype.warning = function warning(...args) {
let err = args[0];
if (this.logger.level < Logger.levels.WARNING)
return;
@ -779,11 +749,6 @@ LoggerContext.prototype.warning = function warning(err) {
if (err instanceof Error)
return this.logError(Logger.levels.WARNING, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.WARNING, args);
};
@ -793,8 +758,8 @@ LoggerContext.prototype.warning = function warning(err) {
* @param {...Object} args
*/
LoggerContext.prototype.info = function info(err) {
let args;
LoggerContext.prototype.info = function info(...args) {
let err = args[0];
if (this.logger.level < Logger.levels.INFO)
return;
@ -802,11 +767,6 @@ LoggerContext.prototype.info = function info(err) {
if (err instanceof Error)
return this.logError(Logger.levels.INFO, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.INFO, args);
};
@ -816,8 +776,8 @@ LoggerContext.prototype.info = function info(err) {
* @param {...Object} args
*/
LoggerContext.prototype.debug = function debug(err) {
let args;
LoggerContext.prototype.debug = function debug(...args) {
let err = args[0];
if (this.logger.level < Logger.levels.DEBUG)
return;
@ -825,11 +785,6 @@ LoggerContext.prototype.debug = function debug(err) {
if (err instanceof Error)
return this.logError(Logger.levels.DEBUG, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.DEBUG, args);
};
@ -839,8 +794,8 @@ LoggerContext.prototype.debug = function debug(err) {
* @param {...Object} args
*/
LoggerContext.prototype.spam = function spam(err) {
let args;
LoggerContext.prototype.spam = function spam(...args) {
let err = args[0];
if (this.logger.level < Logger.levels.SPAM)
return;
@ -848,11 +803,6 @@ LoggerContext.prototype.spam = function spam(err) {
if (err instanceof Error)
return this.logError(Logger.levels.SPAM, err);
args = new Array(arguments.length);
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
this.log(Logger.levels.SPAM, args);
};

View File

@ -63,12 +63,12 @@ function exec(gen) {
* Execute generator function
* with a context and execute.
* @param {GeneratorFunction} generator
* @param {Object} ctx
* @param {Object?} self
* @returns {Promise}
*/
function spawn(generator, ctx) {
let gen = generator.call(ctx);
function spawn(generator, self) {
let gen = generator.call(self);
return exec(gen);
}
@ -97,37 +97,6 @@ function isPromise(obj) {
return obj && typeof obj.then === 'function';
}
/**
* Wrap an async function to be
* executed into a function that
* accepts a node.js style callback.
* @param {AsyncFunction}
* @returns {Function}
*/
function cob(func) {
return function(_) {
let args, callback;
if (arguments.length === 0
|| typeof arguments[arguments.length - 1] !== 'function') {
throw new Error((func.name || 'Function') + ' requires a callback.');
}
args = new Array(arguments.length - 1);
callback = arguments[arguments.length - 1];
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
func.apply(this, args).then((value) => {
setImmediate(() => callback(null, value));
}, (err) => {
setImmediate(() => callback(err));
});
};
}
/**
* Wait for a nextTick with a promise.
* @returns {Promise}
@ -170,20 +139,41 @@ function wrap(resolve, reject) {
* style callbacks into a function that
* returns a promise.
* @param {Function} func
* @param {Object?} ctx
* @returns {AsyncFunction}
*/
function promisify(func) {
return function(...args) {
return new Promise((resolve, reject) => {
args.push(wrap(resolve, reject));
func.call(this, ...args);
});
};
}
/**
* Wrap a promise-returning function
* into a function that accepts a
* node.js style callback.
* @param {AsyncFunction} func
* @returns {Function}
*/
function promisify(func, ctx) {
return function() {
let args = new Array(arguments.length);
function callbackify(func) {
return function(...args) {
let callback;
for (let i = 0; i < arguments.length; i++)
args[i] = arguments[i];
if (args.length === 0
|| typeof args[args.length - 1] !== 'function') {
throw new Error((func.name || 'Function') + ' requires a callback.');
}
return new Promise((resolve, reject) => {
args.push(wrap(resolve, reject));
func.apply(ctx || this, args);
callback = args.pop();
func.call(this, ...args).then((value) => {
setImmediate(() => callback(null, value));
}, (err) => {
setImmediate(() => callback(err));
});
};
}
@ -314,11 +304,11 @@ exports = co;
exports.exec = exec;
exports.spawn = spawn;
exports.co = co;
exports.cob = cob;
exports.wait = wait;
exports.timeout = timeout;
exports.wrap = wrap;
exports.promisify = promisify;
exports.callbackify = callbackify;
exports.every = every;
exports.setInterval = startInterval;
exports.clearInterval = stopInterval;

View File

@ -338,13 +338,9 @@ util.format = function format(args, color) {
* @param {...String} args
*/
util.log = function log() {
let args = new Array(arguments.length);
util.log = function log(...args) {
let msg;
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
if (!process.stdout) {
msg = typeof args[0] !== 'object'
? util.format(args, false)
@ -363,13 +359,9 @@ util.log = function log() {
* @param {...String} args
*/
util.error = function error() {
let args = new Array(arguments.length);
util.error = function error(...args) {
let msg;
for (let i = 0; i < args.length; i++)
args[i] = arguments[i];
if (!process.stderr) {
msg = typeof args[0] !== 'object'
? util.format(args, false)

View File

@ -159,12 +159,7 @@ Master.prototype.send = function send(packet) {
* @returns {Boolean}
*/
Master.prototype.sendEvent = function sendEvent() {
let items = new Array(arguments.length);
for (let i = 0; i < items.length; i++)
items[i] = arguments[i];
Master.prototype.sendEvent = function sendEvent(...items) {
return this.send(new packets.EventPacket(items));
};
@ -184,15 +179,8 @@ Master.prototype.destroy = function destroy() {
* @param {...String} args
*/
Master.prototype.log = function log() {
let items = new Array(arguments.length);
let text;
for (let i = 0; i < items.length; i++)
items[i] = arguments[i];
text = util.format(items, this.color);
Master.prototype.log = function log(...items) {
let text = util.format(items, this.color);
this.send(new packets.LogPacket(text));
};

View File

@ -709,12 +709,7 @@ Worker.prototype.send = function send(packet) {
* @returns {Boolean}
*/
Worker.prototype.sendEvent = function sendEvent() {
let items = new Array(arguments.length);
for (let i = 0; i < items.length; i++)
items[i] = arguments[i];
Worker.prototype.sendEvent = function sendEvent(...items) {
return this.send(new packets.EventPacket(items));
};