Created
September 16, 2019 13:40
-
-
Save timendum/052bfe431c002cf23553bade0bbba9f9 to your computer and use it in GitHub Desktop.
eslint config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"parserOptions": { | |
"ecmaVersion": 8, | |
}, | |
"env": { | |
"browser": true, | |
"es6": true, | |
"webextensions": true | |
}, | |
// from https://dxr.mozilla.org/mozilla-central/source/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js | |
"extends": [ | |
"eslint:recommended" | |
], | |
"rules": { | |
// Warn about cyclomatic complexity in functions. | |
// XXX Get this down to 20? | |
complexity: ["error", 34], | |
// Functions must always return something or nothing | |
"consistent-return": "error", | |
// XXX This rule line should be removed to enable it. See bug 1487642. | |
// Require super() calls in constructors | |
"constructor-super": "off", | |
// Require braces around blocks that start a new line | |
curly: ["error", "all"], | |
// Encourage the use of dot notation whenever possible. | |
"dot-notation": "error", | |
// XXX This rule should be enabled, see Bug 1557040 | |
// No credentials submitted with fetch calls | |
"fetch-options/no-fetch-credentials": "off", | |
// XXX This rule line should be removed to enable it. See bug 1487642. | |
// Enforce return statements in getters | |
"getter-return": "off", | |
// Don't enforce the maximum depth that blocks can be nested. The complexity | |
// rule is a better rule to check this. | |
"max-depth": "off", | |
// Maximum depth callbacks can be nested. | |
"max-nested-callbacks": ["error", 10], | |
// Use [] instead of Array() | |
"no-array-constructor": "error", | |
// Disallow use of arguments.caller or arguments.callee. | |
"no-caller": "error", | |
// XXX Bug 1487642 - decide if we want to enable this or not. | |
// Disallow lexical declarations in case clauses | |
"no-case-declarations": "off", | |
// XXX Bug 1487642 - decide if we want to enable this or not. | |
// Disallow the use of console | |
"no-console": "off", | |
// XXX Bug 1487642 - decide if we want to enable this or not. | |
// Disallow constant expressions in conditions | |
"no-constant-condition": "off", | |
// No duplicate keys in object declarations | |
"no-dupe-keys": "error", | |
// If an if block ends with a return no need for an else block | |
"no-else-return": "error", | |
// No empty statements | |
"no-empty": "error", | |
// Disallow eval and setInteral/setTimeout with strings | |
"no-eval": "error", | |
// Disallow unnecessary calls to .bind() | |
"no-extra-bind": "error", | |
// Disallow fallthrough of case statements | |
"no-fallthrough": [ | |
"error", | |
{ | |
// The eslint rule doesn't allow for case-insensitive regex option. | |
// The following pattern allows for a dash between "fall through" as | |
// well as alternate spelling of "fall thru". The pattern also allows | |
// for an optional "s" at the end of "fall" ("falls through"). | |
commentPattern: | |
"[Ff][Aa][Ll][Ll][Ss]?[\\s-]?([Tt][Hh][Rr][Oo][Uu][Gg][Hh]|[Tt][Hh][Rr][Uu])", | |
}, | |
], | |
// Disallow assignments to native objects or read-only global variables | |
"no-global-assign": "error", | |
// Disallow eval and setInteral/setTimeout with strings | |
"no-implied-eval": "error", | |
// This has been superseded since we're using ES6. | |
// Disallow variable or function declarations in nested blocks | |
"no-inner-declarations": "off", | |
// Disallow the use of the __iterator__ property | |
"no-iterator": "error", | |
// No labels | |
"no-labels": "error", | |
// Disallow unnecessary nested blocks | |
"no-lone-blocks": "error", | |
// No single if block inside an else block | |
"no-lonely-if": "error", | |
// Nested ternary statements are confusing | |
"no-nested-ternary": "error", | |
// Use {} instead of new Object() | |
"no-new-object": "error", | |
// Disallow use of new wrappers | |
"no-new-wrappers": "error", | |
// We don't want this, see bug 1551829 | |
"no-prototype-builtins": "off", | |
// Disable builtinGlobals for no-redeclare as this conflicts with our | |
// globals declarations especially for browser window. | |
"no-redeclare": ["error", { builtinGlobals: false }], | |
// Disallow use of event global. | |
"no-restricted-globals": ["error", "event"], | |
// Disallows unnecessary `return await ...`. | |
"no-return-await": "error", | |
// No unnecessary comparisons | |
"no-self-compare": "error", | |
// No comma sequenced statements | |
"no-sequences": "error", | |
// No declaring variables from an outer scope | |
// "no-shadow": "error", | |
// No declaring variables that hide things like arguments | |
"no-shadow-restricted-names": "error", | |
// Disallow throwing literals (eg. throw "error" instead of | |
// throw new Error("error")). | |
"no-throw-literal": "error", | |
// Disallow the use of Boolean literals in conditional expressions. | |
"no-unneeded-ternary": "error", | |
// No declaring variables that are never used | |
"no-unused-vars": [ | |
"error", | |
{ | |
args: "none", | |
vars: "local", | |
}, | |
], | |
// No using variables before defined | |
// "no-use-before-define": ["error", "nofunc"], | |
// Disallow unnecessary .call() and .apply() | |
"no-useless-call": "error", | |
// Don't concatenate string literals together (unless they span multiple | |
// lines) | |
"no-useless-concat": "error", | |
// XXX Bug 1487642 - decide if we want to enable this or not. | |
// Disallow unnecessary escape characters | |
"no-useless-escape": "off", | |
// Disallow redundant return statements | |
"no-useless-return": "error", | |
// No using with | |
"no-with": "error", | |
// Require object-literal shorthand with ES6 method syntax | |
"object-shorthand": ["error", "always", { avoidQuotes: true }], | |
// This generates too many false positives that are not easy to work around, | |
// and false positives seem to be inherent in the rule. | |
"require-atomic-updates": "off", | |
// XXX Bug 1487642 - decide if we want to enable this or not. | |
// Require generator functions to contain yield | |
"require-yield": "off", | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment