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>
pull/1794/merge
Roman Reiss 2015-06-11 19:08:25 +02:00
parent b5b8ff117c
commit 6e4d30286d
7 changed files with 59 additions and 34 deletions

View File

@ -3,3 +3,4 @@ test/addons/doc-*/
test/fixtures test/fixtures
test/**/node_modules test/**/node_modules
test/parallel/test-fs-non-number-arguments-throw.js test/parallel/test-fs-non-number-arguments-throw.js
test/disabled

View File

@ -39,14 +39,9 @@ rules:
# Stylistic Issues # Stylistic Issues
# list: https://github.com/eslint/eslint/tree/master/docs/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 ## use single quote, we can use double quote when escape chars
quotes: quotes: [2, "single", "avoid-escape"]
- 2
- "single"
- "avoid-escape"
## 2 space indentation ## 2 space indentation
indent: indent: [2, 2]
- 2
- 2
## add space after comma ## add space after comma
## set to 'warn' because of https://github.com/eslint/eslint/issues/2408 ## set to 'warn' because of https://github.com/eslint/eslint/issues/2408
comma-spacing: 1 comma-spacing: 1
@ -63,35 +58,40 @@ rules:
## require parens for Constructor ## require parens for Constructor
new-parens: 2 new-parens: 2
## max 80 length ## max 80 length
max-len: max-len: [2, 80, 2]
- 2
- 80
- 2
# Strict Mode # Strict Mode
# list: https://github.com/eslint/eslint/tree/master/docs/rules#strict-mode # list: https://github.com/eslint/eslint/tree/master/docs/rules#strict-mode
## 'use strict' on top ## 'use strict' on top
strict: strict: [2, "global"]
- 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 # Global scoped method and vars
globals: globals:
DTRACE_HTTP_CLIENT_REQUEST: true DTRACE_HTTP_CLIENT_REQUEST : false
LTTNG_HTTP_CLIENT_REQUEST: true LTTNG_HTTP_CLIENT_REQUEST : false
COUNTER_HTTP_CLIENT_REQUEST: true COUNTER_HTTP_CLIENT_REQUEST : false
DTRACE_HTTP_CLIENT_RESPONSE: true DTRACE_HTTP_CLIENT_RESPONSE : false
LTTNG_HTTP_CLIENT_RESPONSE: true LTTNG_HTTP_CLIENT_RESPONSE : false
COUNTER_HTTP_CLIENT_RESPONSE: true COUNTER_HTTP_CLIENT_RESPONSE : false
DTRACE_HTTP_SERVER_REQUEST: true DTRACE_HTTP_SERVER_REQUEST : false
LTTNG_HTTP_SERVER_REQUEST: true LTTNG_HTTP_SERVER_REQUEST : false
COUNTER_HTTP_SERVER_REQUEST: true COUNTER_HTTP_SERVER_REQUEST : false
DTRACE_HTTP_SERVER_RESPONSE: true DTRACE_HTTP_SERVER_RESPONSE : false
LTTNG_HTTP_SERVER_RESPONSE: true LTTNG_HTTP_SERVER_RESPONSE : false
COUNTER_HTTP_SERVER_RESPONSE: true COUNTER_HTTP_SERVER_RESPONSE : false
DTRACE_NET_STREAM_END: true DTRACE_NET_STREAM_END : false
LTTNG_NET_STREAM_END: true LTTNG_NET_STREAM_END : false
COUNTER_NET_SERVER_CONNECTION_CLOSE: true COUNTER_NET_SERVER_CONNECTION_CLOSE : false
DTRACE_NET_SERVER_CONNECTION: true DTRACE_NET_SERVER_CONNECTION : false
LTTNG_NET_SERVER_CONNECTION: true LTTNG_NET_SERVER_CONNECTION : false
COUNTER_NET_SERVER_CONNECTION: true COUNTER_NET_SERVER_CONNECTION : false
escape : false
unescape : false

View File

@ -375,7 +375,7 @@ bench-idle:
./$(NODE_EXE) benchmark/idle_clients.js & ./$(NODE_EXE) benchmark/idle_clients.js &
jslint: 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 ?=
CPPLINT_EXCLUDE += src/node_lttng.cc CPPLINT_EXCLUDE += src/node_lttng.cc

View File

@ -1,3 +1,4 @@
/* eslint-disable require-buffer */
'use strict'; 'use strict';
const binding = process.binding('buffer'); const binding = process.binding('buffer');

View File

@ -3,3 +3,10 @@
rules: rules:
## allow unreachable code ## allow unreachable code
no-unreachable: 0 no-unreachable: 0
## allow undeclared variables
no-undef: 0
## allow global Buffer usage
require-buffer: 0
globals:
gc: false

View File

@ -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);
}
});
}
}
}

View File

@ -181,7 +181,7 @@ goto jslint
:jslint :jslint
if not defined jslint goto exit if not defined jslint goto exit
echo running jslint 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 goto exit
:create-msvs-files-failed :create-msvs-files-failed