diff options
author | Roman Reiss <me@silverwind.io> | 2015-06-11 19:08:25 +0200 |
---|---|---|
committer | Roman Reiss <me@silverwind.io> | 2015-06-11 20:27:35 +0200 |
commit | 6e4d30286d7305335b14762271a25f5dbc5c63c0 (patch) | |
tree | c47041787c2eb7284842104a2d8774e000787182 | |
parent | b5b8ff117c8581945d0c8c3a4b18d53f4b33b86f (diff) | |
download | node-new-6e4d30286d7305335b14762271a25f5dbc5c63c0.tar.gz |
tools: enable/add additional eslint rules
Enables the following rules:
- no-undef: Valuable rule to error on usage of undefined variables
- require-buffer: Custom rule that forbids usage of the global Buffer
inside lib/ because of REPL issues.
PR-URL: https://github.com/nodejs/io.js/pull/1794
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
-rw-r--r-- | .eslintignore | 1 | ||||
-rw-r--r-- | .eslintrc | 64 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | lib/buffer.js | 1 | ||||
-rw-r--r-- | test/.eslintrc | 7 | ||||
-rw-r--r-- | tools/eslint-rules/require-buffer.js | 16 | ||||
-rw-r--r-- | vcbuild.bat | 2 |
7 files changed, 59 insertions, 34 deletions
diff --git a/.eslintignore b/.eslintignore index 46a631963a..da42fb9d77 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,3 +3,4 @@ test/addons/doc-*/ test/fixtures test/**/node_modules test/parallel/test-fs-non-number-arguments-throw.js +test/disabled @@ -39,14 +39,9 @@ rules: # Stylistic Issues # list: https://github.com/eslint/eslint/tree/master/docs/rules#stylistic-issues ## use single quote, we can use double quote when escape chars - quotes: - - 2 - - "single" - - "avoid-escape" + quotes: [2, "single", "avoid-escape"] ## 2 space indentation - indent: - - 2 - - 2 + indent: [2, 2] ## add space after comma ## set to 'warn' because of https://github.com/eslint/eslint/issues/2408 comma-spacing: 1 @@ -63,35 +58,40 @@ rules: ## require parens for Constructor new-parens: 2 ## max 80 length - max-len: - - 2 - - 80 - - 2 + max-len: [2, 80, 2] # Strict Mode # list: https://github.com/eslint/eslint/tree/master/docs/rules#strict-mode ## 'use strict' on top - strict: - - 2 - - "global" + strict: [2, "global"] + + # Variables + # list: https://github.com/eslint/eslint/tree/master/docs/rules#variables + ## disallow use of undefined variables (globals) + no-undef: 2 + + # Custom rules in tools/eslint-rules + require-buffer: 2 # Global scoped method and vars globals: - DTRACE_HTTP_CLIENT_REQUEST: true - LTTNG_HTTP_CLIENT_REQUEST: true - COUNTER_HTTP_CLIENT_REQUEST: true - DTRACE_HTTP_CLIENT_RESPONSE: true - LTTNG_HTTP_CLIENT_RESPONSE: true - COUNTER_HTTP_CLIENT_RESPONSE: true - DTRACE_HTTP_SERVER_REQUEST: true - LTTNG_HTTP_SERVER_REQUEST: true - COUNTER_HTTP_SERVER_REQUEST: true - DTRACE_HTTP_SERVER_RESPONSE: true - LTTNG_HTTP_SERVER_RESPONSE: true - COUNTER_HTTP_SERVER_RESPONSE: true - DTRACE_NET_STREAM_END: true - LTTNG_NET_STREAM_END: true - COUNTER_NET_SERVER_CONNECTION_CLOSE: true - DTRACE_NET_SERVER_CONNECTION: true - LTTNG_NET_SERVER_CONNECTION: true - COUNTER_NET_SERVER_CONNECTION: true + DTRACE_HTTP_CLIENT_REQUEST : false + LTTNG_HTTP_CLIENT_REQUEST : false + COUNTER_HTTP_CLIENT_REQUEST : false + DTRACE_HTTP_CLIENT_RESPONSE : false + LTTNG_HTTP_CLIENT_RESPONSE : false + COUNTER_HTTP_CLIENT_RESPONSE : false + DTRACE_HTTP_SERVER_REQUEST : false + LTTNG_HTTP_SERVER_REQUEST : false + COUNTER_HTTP_SERVER_REQUEST : false + DTRACE_HTTP_SERVER_RESPONSE : false + LTTNG_HTTP_SERVER_RESPONSE : false + COUNTER_HTTP_SERVER_RESPONSE : false + DTRACE_NET_STREAM_END : false + LTTNG_NET_STREAM_END : false + COUNTER_NET_SERVER_CONNECTION_CLOSE : false + DTRACE_NET_SERVER_CONNECTION : false + LTTNG_NET_SERVER_CONNECTION : false + COUNTER_NET_SERVER_CONNECTION : false + escape : false + unescape : false @@ -375,7 +375,7 @@ bench-idle: ./$(NODE_EXE) benchmark/idle_clients.js & jslint: - ./$(NODE_EXE) tools/eslint/bin/eslint.js src lib test --reset --quiet + ./$(NODE_EXE) tools/eslint/bin/eslint.js src lib test --rulesdir tools/eslint-rules --reset --quiet CPPLINT_EXCLUDE ?= CPPLINT_EXCLUDE += src/node_lttng.cc diff --git a/lib/buffer.js b/lib/buffer.js index ccd899da5f..81fe904a8b 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -1,3 +1,4 @@ +/* eslint-disable require-buffer */ 'use strict'; const binding = process.binding('buffer'); diff --git a/test/.eslintrc b/test/.eslintrc index d5d95584ea..608c62dff5 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -3,3 +3,10 @@ rules: ## allow unreachable code no-unreachable: 0 + ## allow undeclared variables + no-undef: 0 + ## allow global Buffer usage + require-buffer: 0 + +globals: + gc: false diff --git a/tools/eslint-rules/require-buffer.js b/tools/eslint-rules/require-buffer.js new file mode 100644 index 0000000000..7a975df58a --- /dev/null +++ b/tools/eslint-rules/require-buffer.js @@ -0,0 +1,16 @@ +'use strict'; + +const msg = 'Use const Buffer = require(\'buffer\').Buffer; ' + + 'at the beginning of this file'; + +module.exports = function(context) { + return { + 'Program:exit': function() { + context.getScope().through.forEach(function(ref) { + if (ref.identifier.name === 'Buffer') { + context.report(ref.identifier, msg); + } + }); + } + } +} diff --git a/vcbuild.bat b/vcbuild.bat index 21e8d5411a..2bfdb890d5 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -181,7 +181,7 @@ goto jslint :jslint if not defined jslint goto exit echo running jslint -%config%\iojs tools\eslint\bin\eslint.js src lib test --reset --quiet +%config%\iojs tools\eslint\bin\eslint.js src lib test --rulesdir tools\eslint-rules --reset --quiet goto exit :create-msvs-files-failed |