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: 2 no-debugger: 2 no-dupe-args: 2 no-dupe-keys: 2 no-duplicate-case: 2 no-empty-character-class: 2 no-ex-assign: 2 no-extra-boolean-cast: 2 no-extra-parens: [2, functions] no-extra-semi: 2 no-func-assign: 2 no-invalid-regexp: 2 no-irregular-whitespace: 2 no-obj-calls: 2 no-template-curly-in-string: 2 no-unexpected-multiline: 2 no-unreachable: 2 no-unsafe-negation: 2 use-isnan: 2 valid-typeof: 2 # Best Practices # http://eslint.org/docs/rules/#best-practices dot-location: [2, property] eqeqeq: [2, smart] no-fallthrough: 2 no-global-assign: 2 no-multi-spaces: [2, {ignoreEOLComments: true}] no-octal: 2 no-proto: 2 no-redeclare: 2 no-restricted-properties: - 2 - 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: 2 no-throw-literal: 2 no-unused-labels: 2 no-useless-call: 2 no-useless-concat: 2 no-useless-escape: 2 no-useless-return: 2 no-void: 2 no-with: 2 # Strict Mode # http://eslint.org/docs/rules/#strict-mode strict: [2, global] # Variables # http://eslint.org/docs/rules/#variables no-delete-var: 2 no-undef: 2 no-unused-vars: [2, {args: none}] no-use-before-define: [2, {classes: true, functions: false, variables: false}] # Node.js and CommonJS # http://eslint.org/docs/rules/#nodejs-and-commonjs no-mixed-requires: 2 no-new-require: 2 no-path-concat: 2 no-restricted-modules: [2, sys] # Stylistic Issues # http://eslint.org/docs/rules/#stylistic-issues block-spacing: 2 brace-style: [2, 1tbs, {allowSingleLine: true}] comma-dangle: [2, only-multiline] comma-spacing: 2 comma-style: 2 computed-property-spacing: 2 eol-last: 2 func-call-spacing: 2 func-name-matching: 2 func-style: [2, declaration, {allowArrowFunctions: true}] # indent: [2, 2, {ArrayExpression: first, # CallExpression: {arguments: first}, # FunctionDeclaration: {parameters: first}, # FunctionExpression: {parameters: first}, # MemberExpression: off, # ObjectExpression: first, # SwitchCase: 1}] indent-legacy: [2, 2, {ArrayExpression: first, CallExpression: {arguments: first}, MemberExpression: 1, ObjectExpression: first, SwitchCase: 1}] key-spacing: [2, {mode: minimum}] keyword-spacing: 2 linebreak-style: [2, unix] max-len: [2, {code: 80, ignoreRegExpLiterals: true, ignoreUrls: true, tabWidth: 2}] new-parens: 2 no-mixed-spaces-and-tabs: 2 no-multiple-empty-lines: [2, {max: 2, maxEOF: 0, maxBOF: 0}] no-restricted-syntax: [2, { 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: 2 no-trailing-spaces: 2 one-var-declaration-per-line: 2 operator-linebreak: [2, after] quotes: [2, single, avoid-escape] semi: 2 semi-spacing: 2 space-before-blocks: [2, always] space-before-function-paren: [2, { "anonymous": "never", "named": "never", "asyncArrow": "always" }] space-in-parens: [2, never] space-infix-ops: 2 space-unary-ops: 2 unicode-bom: 2 # ECMAScript 6 # http://eslint.org/docs/rules/#ecmascript-6 arrow-parens: [2, always] arrow-spacing: [2, {before: true, after: true}] constructor-super: 2 no-class-assign: 2 no-confusing-arrow: 2 no-const-assign: 2 no-dupe-class-members: 2 no-new-symbol: 2 no-this-before-super: 2 prefer-const: [2, {ignoreReadBeforeAssign: true}] rest-spread-spacing: 2 template-curly-spacing: 2 # Custom rules in tools/eslint-rules align-multiline-assignment: 2 assert-throws-arguments: [2, { requireTwo: true }] no-unescaped-regexp-dot: 2 # 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