Skip to content

Commit

Permalink
tools: enable/add additional eslint rules
Browse files Browse the repository at this point in the history
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: #1794
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
  • Loading branch information
silverwind committed Jun 11, 2015
1 parent b5b8ff1 commit 6e4d302
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 34 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ test/addons/doc-*/
test/fixtures
test/**/node_modules
test/parallel/test-fs-non-number-arguments-throw.js
test/disabled
64 changes: 32 additions & 32 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions lib/buffer.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable require-buffer */
'use strict';

const binding = process.binding('buffer');
Expand Down
7 changes: 7 additions & 0 deletions test/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -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
16 changes: 16 additions & 0 deletions tools/eslint-rules/require-buffer.js
Original file line number Diff line number Diff line change
@@ -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);
}
});
}
}
}
2 changes: 1 addition & 1 deletion vcbuild.bat
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 6e4d302

Please sign in to comment.