You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
5.9 KiB

root: true
plugins:
- markdown
env:
node: true
es6: true
parserOptions:
ecmaVersion: 2017
rules:
# Possible Errors
# http://eslint.org/docs/rules/#possible-errors
no-control-regex: error
no-debugger: error
no-dupe-args: error
no-dupe-keys: error
no-duplicate-case: error
no-empty-character-class: error
no-ex-assign: error
no-extra-boolean-cast: error
no-extra-parens: [error, functions]
no-extra-semi: error
no-func-assign: error
no-invalid-regexp: error
no-irregular-whitespace: error
no-obj-calls: error
no-template-curly-in-string: error
no-unexpected-multiline: error
no-unreachable: error
no-unsafe-negation: error
use-isnan: error
valid-typeof: error
# Best Practices
# http://eslint.org/docs/rules/#best-practices
dot-location: [error, property]
eqeqeq: [error, smart]
no-fallthrough: error
no-global-assign: error
no-multi-spaces: [error, {ignoreEOLComments: true}]
no-octal: error
no-proto: error
no-redeclare: error
no-restricted-properties:
- error
- object: assert
property: deepEqual
message: Use assert.deepStrictEqual().
- object: assert
property: equal
message: Use assert.strictEqual() rather than assert.equal().
- object: assert
property: notEqual
message: Use assert.notStrictEqual() rather than assert.notEqual().
- property: __defineGetter__
message: __defineGetter__ is deprecated.
- property: __defineSetter__
message: __defineSetter__ is deprecated.
no-self-assign: error
no-throw-literal: error
no-unused-labels: error
no-useless-call: error
no-useless-concat: error
no-useless-escape: error
no-useless-return: error
no-void: error
no-with: error
# Strict Mode
# http://eslint.org/docs/rules/#strict-mode
strict: [error, global]
# Variables
# http://eslint.org/docs/rules/#variables
no-delete-var: error
no-undef: error
no-unused-vars: [error, {args: none}]
no-use-before-define: [error, {classes: true,
functions: false,
variables: false}]
# Node.js and CommonJS
# http://eslint.org/docs/rules/#nodejs-and-commonjs
no-mixed-requires: error
no-new-require: error
no-path-concat: error
no-restricted-modules: [error, sys]
# Stylistic Issues
# http://eslint.org/docs/rules/#stylistic-issues
block-spacing: error
brace-style: [error, 1tbs, {allowSingleLine: true}]
comma-dangle: [error, only-multiline]
comma-spacing: error
comma-style: error
computed-property-spacing: error
eol-last: error
func-call-spacing: error
func-name-matching: error
func-style: [error, declaration, {allowArrowFunctions: true}]
indent: [error, 2, {ArrayExpression: first,
CallExpression: {arguments: first},
FunctionDeclaration: {parameters: first},
FunctionExpression: {parameters: first},
MemberExpression: off,
ObjectExpression: first,
SwitchCase: 1}]
key-spacing: [error, {mode: minimum}]
keyword-spacing: error
linebreak-style: [error, unix]
max-len: [error, {code: 80,
ignoreRegExpLiterals: true,
ignoreUrls: true,
tabWidth: 2}]
new-parens: error
no-mixed-spaces-and-tabs: error
no-multiple-empty-lines: [error, {max: 2, maxEOF: 0, maxBOF: 0}]
no-restricted-syntax: [error, {
selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])",
message: "use a regular expression for second argument of assert.throws()"
}, {
selector: "CallExpression[callee.object.name='assert'][callee.property.name='throws'][arguments.length<2]",
message: "assert.throws() must be invoked with at least two arguments."
}, {
selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]",
message: "setTimeout() must be invoked with at least two arguments."
}, {
selector: "CallExpression[callee.name='setInterval'][arguments.length<2]",
message: "setInterval() must be invoked with at least 2 arguments."
}, {
selector: "ThrowStatement > CallExpression[callee.name=/Error$/]",
message: "Use new keyword when throwing an Error."
}]
no-tabs: error
no-trailing-spaces: error
object-curly-spacing: [error, always]
one-var-declaration-per-line: error
operator-linebreak: [error, after]
quotes: [error, single, avoid-escape]
semi: error
semi-spacing: error
space-before-blocks: [error, always]
space-before-function-paren: [error, {
anonymous: never,
named: never,
asyncArrow: always
}]
space-in-parens: [error, never]
space-infix-ops: error
space-unary-ops: error
unicode-bom: error
# ECMAScript 6
# http://eslint.org/docs/rules/#ecmascript-6
arrow-parens: [error, always]
arrow-spacing: [error, {before: true, after: true}]
constructor-super: error
no-class-assign: error
no-confusing-arrow: error
no-const-assign: error
no-dupe-class-members: error
no-new-symbol: error
no-this-before-super: error
prefer-const: [error, {ignoreReadBeforeAssign: true}]
rest-spread-spacing: error
template-curly-spacing: error
# Custom rules in tools/eslint-rules
no-unescaped-regexp-dot: error
# Global scoped method and vars
globals:
COUNTER_HTTP_CLIENT_REQUEST: false
COUNTER_HTTP_CLIENT_RESPONSE: false
COUNTER_HTTP_SERVER_REQUEST: false
COUNTER_HTTP_SERVER_RESPONSE: false
COUNTER_NET_SERVER_CONNECTION: false
COUNTER_NET_SERVER_CONNECTION_CLOSE: false
DTRACE_HTTP_CLIENT_REQUEST: false
DTRACE_HTTP_CLIENT_RESPONSE: false
DTRACE_HTTP_SERVER_REQUEST: false
DTRACE_HTTP_SERVER_RESPONSE: false
DTRACE_NET_SERVER_CONNECTION: false
DTRACE_NET_STREAM_END: false
LTTNG_HTTP_CLIENT_REQUEST: false
LTTNG_HTTP_CLIENT_RESPONSE: false
LTTNG_HTTP_SERVER_REQUEST: false
LTTNG_HTTP_SERVER_RESPONSE: false
LTTNG_NET_SERVER_CONNECTION: false
LTTNG_NET_STREAM_END: false