From: Roman Reiss Date: Thu, 11 Jun 2015 17:08:25 +0000 (+0200) Subject: tools: enable/add additional eslint rules X-Git-Tag: v2.3.0~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6e4d30286d7305335b14762271a25f5dbc5c63c0;p=platform%2Fupstream%2Fnodejs.git 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 --- diff --git a/.eslintignore b/.eslintignore index 46a6319..da42fb9 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 diff --git a/.eslintrc b/.eslintrc index 0c43234..7b2b151 100644 --- a/.eslintrc +++ b/.eslintrc @@ -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 diff --git a/Makefile b/Makefile index 94f130f..adebf50 100644 --- a/Makefile +++ b/Makefile @@ -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 ccd899d..81fe904 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 d5d9558..608c62d 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 0000000..7a975df --- /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 21e8d54..2bfdb89 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