Browse Source

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>
v2.3.1-release
Roman Reiss 9 years ago
parent
commit
6e4d30286d
  1. 1
      .eslintignore
  2. 64
      .eslintrc
  3. 2
      Makefile
  4. 1
      lib/buffer.js
  5. 7
      test/.eslintrc
  6. 16
      tools/eslint-rules/require-buffer.js
  7. 2
      vcbuild.bat

1
.eslintignore

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

64
.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

2
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

1
lib/buffer.js

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

7
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

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

2
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

Loading…
Cancel
Save