summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatoli Papirovski <apapirovski@mac.com>2017-10-16 18:37:14 -0400
committerAnatoli Papirovski <apapirovski@mac.com>2017-10-19 13:54:14 -0400
commit3c0ebf5aca935ebacf4f5b862c2ad4fb67614bcb (patch)
tree84859056d1bd5a434d64e7baa4f0f1aca0f96bad
parentbf1bacef6bc49fa39a272ca63b7635de3e5e7f08 (diff)
downloadandroid-node-v8-3c0ebf5aca935ebacf4f5b862c2ad4fb67614bcb.tar.gz
android-node-v8-3c0ebf5aca935ebacf4f5b862c2ad4fb67614bcb.tar.bz2
android-node-v8-3c0ebf5aca935ebacf4f5b862c2ad4fb67614bcb.zip
tools: enable additional eslint rules
Enable additional rules that node either already adheres to or it makes sense to do so going forward: for-direction, accessor-pairs, no-lonely-if and symbol-description. Fix all instances of no-lonely-if in lib & test and disable accessor-pairs in test-util-inspect. PR-URL: https://github.com/nodejs/node/pull/16243 Refs: https://eslint.org/docs/rules/for-direction Refs: https://eslint.org/docs/rules/accessor-pairs Refs: https://eslint.org/docs/rules/no-lonely-if Refs: https://eslint.org/docs/rules/symbol-description Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
-rw-r--r--.eslintrc.yaml4
-rw-r--r--doc/.eslintrc.yaml1
-rw-r--r--lib/_http_incoming.js5
-rw-r--r--lib/_http_outgoing.js24
-rw-r--r--lib/_http_server.js14
-rw-r--r--lib/_stream_readable.js25
-rw-r--r--lib/_tls_legacy.js4
-rw-r--r--lib/child_process.js14
-rw-r--r--lib/events.js10
-rw-r--r--lib/fs.js24
-rw-r--r--lib/internal/http2/core.js11
-rw-r--r--lib/path.js18
-rw-r--r--lib/querystring.js5
-rw-r--r--lib/url.js16
-rw-r--r--test/.eslintrc.yaml1
-rw-r--r--test/abort/test-abort-uncaught-exception.js7
-rw-r--r--test/parallel/test-cluster-disconnect-unshared-tcp.js8
-rw-r--r--test/parallel/test-cluster-disconnect-unshared-udp.js8
-rw-r--r--test/parallel/test-cluster-worker-destroy.js22
-rw-r--r--test/parallel/test-tls-server-verify.js26
-rw-r--r--test/parallel/test-util-inspect.js3
-rw-r--r--tools/eslint-rules/rules-utils.js6
22 files changed, 118 insertions, 138 deletions
diff --git a/.eslintrc.yaml b/.eslintrc.yaml
index 21901f03a5..738a4b605d 100644
--- a/.eslintrc.yaml
+++ b/.eslintrc.yaml
@@ -18,6 +18,7 @@ overrides:
rules:
# Possible Errors
# http://eslint.org/docs/rules/#possible-errors
+ for-direction: error
no-control-regex: error
no-debugger: error
no-dupe-args: error
@@ -41,6 +42,7 @@ rules:
# Best Practices
# http://eslint.org/docs/rules/#best-practices
+ accessor-pairs: error
dot-location: [error, property]
eqeqeq: [error, smart]
no-fallthrough: error
@@ -122,6 +124,7 @@ rules:
ignoreUrls: true,
tabWidth: 2}]
new-parens: error
+ no-lonely-if: error
no-mixed-spaces-and-tabs: error
no-multiple-empty-lines: [error, {max: 2, maxEOF: 0, maxBOF: 0}]
no-restricted-syntax: [error, {
@@ -172,6 +175,7 @@ rules:
no-this-before-super: error
prefer-const: [error, {ignoreReadBeforeAssign: true}]
rest-spread-spacing: error
+ symbol-description: error
template-curly-spacing: error
# Custom rules in tools/eslint-rules
diff --git a/doc/.eslintrc.yaml b/doc/.eslintrc.yaml
index b269eb14e6..8038836fe3 100644
--- a/doc/.eslintrc.yaml
+++ b/doc/.eslintrc.yaml
@@ -6,6 +6,7 @@ rules:
no-undef: off
no-unused-vars: off
strict: off
+ symbol-description: off
# add new ECMAScript features gradually
no-var: error
diff --git a/lib/_http_incoming.js b/lib/_http_incoming.js
index 6e5aff1cc9..696fcc3b4c 100644
--- a/lib/_http_incoming.js
+++ b/lib/_http_incoming.js
@@ -301,10 +301,9 @@ function _addHeaderLine(field, value, dest) {
} else {
dest['set-cookie'] = [value];
}
- } else {
+ } else if (dest[field] === undefined) {
// Drop duplicates
- if (dest[field] === undefined)
- dest[field] = value;
+ dest[field] = value;
}
}
diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js
index e9e0c04270..76d83b1921 100644
--- a/lib/_http_outgoing.js
+++ b/lib/_http_outgoing.js
@@ -404,20 +404,18 @@ function _storeHeader(firstLine, headers) {
this.chunkedEncoding = false;
} else if (!this.useChunkedEncodingByDefault) {
this._last = true;
+ } else if (!state.trailer &&
+ !this._removedContLen &&
+ typeof this._contentLength === 'number') {
+ state.header += 'Content-Length: ' + this._contentLength + CRLF;
+ } else if (!this._removedTE) {
+ state.header += 'Transfer-Encoding: chunked\r\n';
+ this.chunkedEncoding = true;
} else {
- if (!state.trailer &&
- !this._removedContLen &&
- typeof this._contentLength === 'number') {
- state.header += 'Content-Length: ' + this._contentLength + CRLF;
- } else if (!this._removedTE) {
- state.header += 'Transfer-Encoding: chunked\r\n';
- this.chunkedEncoding = true;
- } else {
- // We should only be able to get here if both Content-Length and
- // Transfer-Encoding are removed by the user.
- // See: test/parallel/test-http-remove-header-stays-removed.js
- debug('Both Content-Length and Transfer-Encoding are removed');
- }
+ // We should only be able to get here if both Content-Length and
+ // Transfer-Encoding are removed by the user.
+ // See: test/parallel/test-http-remove-header-stays-removed.js
+ debug('Both Content-Length and Transfer-Encoding are removed');
}
}
diff --git a/lib/_http_server.js b/lib/_http_server.js
index a133c2c153..cb949cb07e 100644
--- a/lib/_http_server.js
+++ b/lib/_http_server.js
@@ -433,8 +433,8 @@ function socketOnEnd(server, socket, parser, state) {
state.outgoing[state.outgoing.length - 1]._last = true;
} else if (socket._httpMessage) {
socket._httpMessage._last = true;
- } else {
- if (socket.writable) socket.end();
+ } else if (socket.writable) {
+ socket.end();
}
}
@@ -602,13 +602,11 @@ function parserOnIncoming(server, socket, state, req, keepAlive) {
res.writeContinue();
server.emit('request', req, res);
}
+ } else if (server.listenerCount('checkExpectation') > 0) {
+ server.emit('checkExpectation', req, res);
} else {
- if (server.listenerCount('checkExpectation') > 0) {
- server.emit('checkExpectation', req, res);
- } else {
- res.writeHead(417);
- res.end();
- }
+ res.writeHead(417);
+ res.end();
}
} else {
server.emit('request', req, res);
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index b031bf0b75..78732ed185 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -40,20 +40,19 @@ const kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
function prependListener(emitter, event, fn) {
// Sadly this is not cacheable as some libraries bundle their own
// event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') {
+ if (typeof emitter.prependListener === 'function')
return emitter.prependListener(event, fn);
- } else {
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event])
- emitter.on(event, fn);
- else if (Array.isArray(emitter._events[event]))
- emitter._events[event].unshift(fn);
- else
- emitter._events[event] = [fn, emitter._events[event]];
- }
+
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event])
+ emitter.on(event, fn);
+ else if (Array.isArray(emitter._events[event]))
+ emitter._events[event].unshift(fn);
+ else
+ emitter._events[event] = [fn, emitter._events[event]];
}
function ReadableState(options, stream) {
diff --git a/lib/_tls_legacy.js b/lib/_tls_legacy.js
index 5f83c528b1..07b95546b3 100644
--- a/lib/_tls_legacy.js
+++ b/lib/_tls_legacy.js
@@ -878,8 +878,8 @@ SecurePair.prototype.error = function(returnOnly) {
/peer did not return a certificate/.test(err.message)) {
// Not really an error.
this.destroy();
- } else {
- if (!returnOnly) this.cleartext.emit('error', err);
+ } else if (!returnOnly) {
+ this.cleartext.emit('error', err);
}
return err;
};
diff --git a/lib/child_process.js b/lib/child_process.js
index 3bf3b23a1c..d9e11cb9a7 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -324,11 +324,10 @@ exports.execFile = function(file /*, args, options, callback*/) {
if (stdoutLen > options.maxBuffer) {
ex = new Error('stdout maxBuffer exceeded');
kill();
+ } else if (encoding) {
+ _stdout += chunk;
} else {
- if (encoding)
- _stdout += chunk;
- else
- _stdout.push(chunk);
+ _stdout.push(chunk);
}
});
}
@@ -343,11 +342,10 @@ exports.execFile = function(file /*, args, options, callback*/) {
if (stderrLen > options.maxBuffer) {
ex = new Error('stderr maxBuffer exceeded');
kill();
+ } else if (encoding) {
+ _stderr += chunk;
} else {
- if (encoding)
- _stderr += chunk;
- else
- _stderr.push(chunk);
+ _stderr.push(chunk);
}
});
}
diff --git a/lib/events.js b/lib/events.js
index 1414a1429d..c7bd15dc5b 100644
--- a/lib/events.js
+++ b/lib/events.js
@@ -280,13 +280,11 @@ function _addListener(target, type, listener, prepend) {
// Adding the second element, need to change to array.
existing = events[type] =
prepend ? [listener, existing] : [existing, listener];
- } else {
// If we've already got an array, just append.
- if (prepend) {
- existing.unshift(listener);
- } else {
- existing.push(listener);
- }
+ } else if (prepend) {
+ existing.unshift(listener);
+ } else {
+ existing.push(listener);
}
// Check for listener leak
diff --git a/lib/fs.js b/lib/fs.js
index 32a0ea8a49..e1407ba4f1 100644
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -1262,21 +1262,19 @@ function writeAll(fd, isUserFd, buffer, offset, length, position, callback) {
callback(writeErr);
});
}
- } else {
- if (written === length) {
- if (isUserFd) {
- callback(null);
- } else {
- fs.close(fd, callback);
- }
+ } else if (written === length) {
+ if (isUserFd) {
+ callback(null);
} else {
- offset += written;
- length -= written;
- if (position !== null) {
- position += written;
- }
- writeAll(fd, isUserFd, buffer, offset, length, position, callback);
+ fs.close(fd, callback);
+ }
+ } else {
+ offset += written;
+ length -= written;
+ if (position !== null) {
+ position += written;
}
+ writeAll(fd, isUserFd, buffer, offset, length, position, callback);
}
});
}
diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js
index 663672f052..5eb34ecdfd 100644
--- a/lib/internal/http2/core.js
+++ b/lib/internal/http2/core.js
@@ -187,12 +187,11 @@ function onSessionHeaders(id, cat, flags, headers) {
}
} else if (cat === NGHTTP2_HCAT_PUSH_RESPONSE) {
event = 'push';
- } else { // cat === NGHTTP2_HCAT_HEADERS:
- if (!endOfStream && status !== undefined && status >= 200) {
- event = 'response';
- } else {
- event = endOfStream ? 'trailers' : 'headers';
- }
+ // cat === NGHTTP2_HCAT_HEADERS:
+ } else if (!endOfStream && status !== undefined && status >= 200) {
+ event = 'response';
+ } else {
+ event = endOfStream ? 'trailers' : 'headers';
}
debug(`[${sessionName(owner[kType])}] emitting stream '${event}' event`);
process.nextTick(emit, stream, event, obj, flags, headers);
diff --git a/lib/path.js b/lib/path.js
index 876e5fd582..e8dbf4c2ee 100644
--- a/lib/path.js
+++ b/lib/path.js
@@ -455,17 +455,15 @@ const win32 = {
} else {
return '';
}
+ } else if (isAbsolute) {
+ if (tail.length > 0)
+ return device + '\\' + tail;
+ else
+ return device + '\\';
+ } else if (tail.length > 0) {
+ return device + tail;
} else {
- if (isAbsolute) {
- if (tail.length > 0)
- return device + '\\' + tail;
- else
- return device + '\\';
- } else if (tail.length > 0) {
- return device + tail;
- } else {
- return device;
- }
+ return device;
}
},
diff --git a/lib/querystring.js b/lib/querystring.js
index b4851f57c3..936b7463c9 100644
--- a/lib/querystring.js
+++ b/lib/querystring.js
@@ -315,9 +315,8 @@ function parse(qs, sep, eq, options) {
sepIdx = eqIdx = 0;
continue;
}
- } else {
- if (lastPos < end)
- value += qs.slice(lastPos, end);
+ } else if (lastPos < end) {
+ value += qs.slice(lastPos, end);
}
if (key.length > 0 && keyEncoded)
diff --git a/lib/url.js b/lib/url.js
index b1e0ff8da5..72e03e0f9c 100644
--- a/lib/url.js
+++ b/lib/url.js
@@ -128,16 +128,14 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
if (isWs)
continue;
lastPos = start = i;
- } else {
- if (inWs) {
- if (!isWs) {
- end = -1;
- inWs = false;
- }
- } else if (isWs) {
- end = i;
- inWs = true;
+ } else if (inWs) {
+ if (!isWs) {
+ end = -1;
+ inWs = false;
}
+ } else if (isWs) {
+ end = i;
+ inWs = true;
}
// Only convert backslashes while we haven't seen a split character
diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml
index 58e072c195..6be0ca4e3f 100644
--- a/test/.eslintrc.yaml
+++ b/test/.eslintrc.yaml
@@ -5,6 +5,7 @@ rules:
# http://eslint.org/docs/rules/#ecmascript-6
no-var: error
prefer-const: error
+ symbol-description: off
# Custom rules in tools/eslint-rules
prefer-assert-iferror: error
diff --git a/test/abort/test-abort-uncaught-exception.js b/test/abort/test-abort-uncaught-exception.js
index e88a56a489..4acddf349c 100644
--- a/test/abort/test-abort-uncaught-exception.js
+++ b/test/abort/test-abort-uncaught-exception.js
@@ -24,11 +24,10 @@ function run(flags, signals) {
assert.strictEqual(code, 0xC0000005);
else
assert.strictEqual(code, 1);
+ } else if (signals) {
+ assert(signals.includes(sig), `Unexpected signal ${sig}`);
} else {
- if (signals)
- assert(signals.includes(sig), `Unexpected signal ${sig}`);
- else
- assert.strictEqual(sig, null);
+ assert.strictEqual(sig, null);
}
}));
}
diff --git a/test/parallel/test-cluster-disconnect-unshared-tcp.js b/test/parallel/test-cluster-disconnect-unshared-tcp.js
index 59df0c5479..e18617788c 100644
--- a/test/parallel/test-cluster-disconnect-unshared-tcp.js
+++ b/test/parallel/test-cluster-disconnect-unshared-tcp.js
@@ -37,10 +37,8 @@ if (cluster.isMaster) {
unbound.disconnect();
unbound.on('disconnect', cluster.disconnect);
}
-} else {
- if (process.env.BOUND === 'y') {
- const source = net.createServer();
+} else if (process.env.BOUND === 'y') {
+ const source = net.createServer();
- source.listen(0);
- }
+ source.listen(0);
}
diff --git a/test/parallel/test-cluster-disconnect-unshared-udp.js b/test/parallel/test-cluster-disconnect-unshared-udp.js
index b0670f3e32..5857e9132f 100644
--- a/test/parallel/test-cluster-disconnect-unshared-udp.js
+++ b/test/parallel/test-cluster-disconnect-unshared-udp.js
@@ -40,10 +40,8 @@ if (cluster.isMaster) {
unbound.disconnect();
unbound.on('disconnect', cluster.disconnect);
}
-} else {
- if (process.env.BOUND === 'y') {
- const source = dgram.createSocket('udp4');
+} else if (process.env.BOUND === 'y') {
+ const source = dgram.createSocket('udp4');
- source.bind(0);
- }
+ source.bind(0);
}
diff --git a/test/parallel/test-cluster-worker-destroy.js b/test/parallel/test-cluster-worker-destroy.js
index e4223b826d..65b41381f5 100644
--- a/test/parallel/test-cluster-worker-destroy.js
+++ b/test/parallel/test-cluster-worker-destroy.js
@@ -41,17 +41,15 @@ if (cluster.isMaster) {
worker.on('disconnect', common.mustCall());
worker.on('exit', common.mustCall());
});
-} else {
- if (cluster.worker.id === 1) {
- // Call destroy when worker is disconnected
- cluster.worker.process.on('disconnect', function() {
- cluster.worker.destroy();
- });
-
- const w = cluster.worker.disconnect();
- assert.strictEqual(w, cluster.worker);
- } else {
- // Call destroy when worker is not disconnected yet
+} else if (cluster.worker.id === 1) {
+ // Call destroy when worker is disconnected
+ cluster.worker.process.on('disconnect', function() {
cluster.worker.destroy();
- }
+ });
+
+ const w = cluster.worker.disconnect();
+ assert.strictEqual(w, cluster.worker);
+} else {
+ // Call destroy when worker is not disconnected yet
+ cluster.worker.destroy();
}
diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js
index f9075539c6..69378aab94 100644
--- a/test/parallel/test-tls-server-verify.js
+++ b/test/parallel/test-tls-server-verify.js
@@ -335,21 +335,19 @@ function runTest(port, testIndex) {
port = server.address().port;
if (tcase.debug) {
console.error(`${prefix}TLS server running on port ${port}`);
+ } else if (tcase.renegotiate) {
+ runNextClient(0);
} else {
- if (tcase.renegotiate) {
- runNextClient(0);
- } else {
- let clientsCompleted = 0;
- for (let i = 0; i < tcase.clients.length; i++) {
- runClient(`${prefix}${i} `, port, tcase.clients[i], function() {
- clientsCompleted++;
- if (clientsCompleted === tcase.clients.length) {
- server.close();
- successfulTests++;
- runTest(port, nextTest++);
- }
- });
- }
+ let clientsCompleted = 0;
+ for (let i = 0; i < tcase.clients.length; i++) {
+ runClient(`${prefix}${i} `, port, tcase.clients[i], function() {
+ clientsCompleted++;
+ if (clientsCompleted === tcase.clients.length) {
+ server.close();
+ successfulTests++;
+ runTest(port, nextTest++);
+ }
+ });
}
}
});
diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js
index 02e35ec9e8..ecdaf0f1a4 100644
--- a/test/parallel/test-util-inspect.js
+++ b/test/parallel/test-util-inspect.js
@@ -26,6 +26,8 @@ const JSStream = process.binding('js_stream').JSStream;
const util = require('util');
const vm = require('vm');
+/* eslint-disable accessor-pairs */
+
assert.strictEqual(util.inspect(1), '1');
assert.strictEqual(util.inspect(false), 'false');
assert.strictEqual(util.inspect(''), "''");
@@ -1149,3 +1151,4 @@ if (typeof Symbol !== 'undefined') {
}
assert.doesNotThrow(() => util.inspect(process));
+/* eslint-enable accessor-pairs */
diff --git a/tools/eslint-rules/rules-utils.js b/tools/eslint-rules/rules-utils.js
index e3e5e6e5ef..f2f5428ed1 100644
--- a/tools/eslint-rules/rules-utils.js
+++ b/tools/eslint-rules/rules-utils.js
@@ -43,10 +43,8 @@ module.exports.inSkipBlock = function(node) {
}
return false;
});
- } else {
- if (hasSkip(consequent.expression)) {
- hasSkipBlock = true;
- }
+ } else if (hasSkip(consequent.expression)) {
+ hasSkipBlock = true;
}
}
return hasSkipBlock;