{ "rules": { // Braces only needed for multi-line arrow function blocks "arrow-body-style": [2, "as-needed"], // Require spacing around => "arrow-spacing": 2, // Always require spacing around a single line block "block-spacing": 2, // No space before always a space after a comma "comma-spacing": [2, {"before": false, "after": true}], // Commas at the end of the line not the start "comma-style": 2, // Don't require spaces around computed properties "computed-property-spacing": [2, "never"], // Functions must always return something or nothing "consistent-return": 2, // Require braces around blocks that start a new line "curly": [2, "multi-line"], // Always require a trailing EOL "eol-last": 2, // Require function* name() "generator-star-spacing": [2, {"before": false, "after": true}], // Space after colon not before in property declarations "key-spacing": [2, { "beforeColon": false, "afterColon": true, "mode": "minimum" }], // Require spaces around keywords "keyword-spacing": 2, // Unix linebreaks "linebreak-style": [2, "unix"], // Always require parenthesis for new calls "new-parens": 2, // Disallow use of alert(), confirm(), and prompt(). "no-alert": 2, // Use [] instead of Array() "no-array-constructor": 2, // Disallow use of arguments.caller or arguments.callee. "no-caller": 2, // Disallow modifying variables of class declarations. "no-class-assign": 2, // Disallow assignment in conditional expressions, except if the assignment // is within parentheses. "no-cond-assign": [2, "except-parens"], // Disallow use of the console API. "no-console": 2, // Disallow modifying variables that are declared using const. "no-const-assign": 2, // Disallow use of debugger "no-debugger": 2, // Disallow deletion of variables (deleting properties is fine though). "no-delete-var": 2, // No duplicate arguments in function declarations "no-dupe-args": 2, // No duplicate keys in object declarations "no-dupe-keys": 2, // No duplicate cases in switch statements "no-duplicate-case": 2, // Disallow use of eval(). "no-eval": 2, // No labels "no-labels": 2, // If an if block ends with a return no need for an else block "no-else-return": 2, // No empty character classes in regex "no-empty-character-class": 2, // Disallow empty destructuring "no-empty-pattern": 2, // No assigning to exception variable "no-ex-assign": 2, // No using !! where casting to boolean is already happening "no-extra-boolean-cast": 2, // No double semicolon "no-extra-semi": 2, // No overwriting defined functions "no-func-assign": 2, // No invalid regular expressions "no-invalid-regexp": 2, // No odd whitespace characters "no-irregular-whitespace": 2, // No single if block inside an else block "no-lonely-if": 2, // No mixing spaces and tabs in indent "no-mixed-spaces-and-tabs": [2, "smart-tabs"], // No unnecessary spacing "no-multi-spaces": [2, { "exceptions": { "AssignmentExpression": true, "VariableDeclarator": true, "ArrayExpression": true, "ObjectExpression": true }}], // No reassigning native JS objects "no-native-reassign": 2, // No (!foo in bar) "no-negated-in-lhs": 2, // Nested ternary statements are confusing "no-nested-ternary": 2, // Use {} instead of new Object() "no-new-object": 2, // No Math() or JSON() "no-obj-calls": 2, // No octal literals "no-octal": 2, // No redeclaring variables "no-redeclare": 2, // Disallow use of assignment in return statement. "no-return-assign": [2, "always"], // Disallow self assignment such as |foo = foo|. "no-self-assign": 2, // No unnecessary comparisons "no-self-compare": 2, // No declaring variables that hide things like arguments "no-shadow-restricted-names": 2, // No spaces between function name and parentheses "no-spaced-func": 2, // Disallow sparse arrays, eg. let arr = [,,2]. "no-sparse-arrays": 2, // Disallow throwing literals (eg. |throw "error"| instead of // |throw new Error("error")|) "no-throw-literal": 2, // No trailing whitespace "no-trailing-spaces": 2, // No using undeclared variables "no-undef": 2, // Error on newline where a semicolon is needed "no-unexpected-multiline": 2, // No unreachable statements "no-unreachable": 2, // No expressions where a statement is expected "no-unused-expressions": 2, // No using with "no-with": 2, // Always require semicolon at end of statement "semi": [2, "always"], // Require space before blocks "space-before-blocks": 2, // No space padding in parentheses "space-in-parens": [2, "never"], // Require spaces around operators "space-infix-ops": 2, // ++ and -- should not need spacing "space-unary-ops": [2, { "words": true, "nonwords": false }], // Require "use strict" to be defined globally in the script. "strict": [2, "global"], // No comparisons to NaN "use-isnan": 2, // Only check typeof against valid results "valid-typeof": 2 }, "env": { "browser": true }, "globals": { "Components": false, "dump": false } }