{ // eslint: recommended automatically enables most/all rules from the // possible errors section and more: // http://eslint.org/docs/rules/#possible-errors "extends": "eslint:recommended", "plugins": [ "@lrowe/flow-remove-types" ], "env": { "browser": false, "node": true, "es6": true }, "rules": { // possible errors "no-cond-assign": [ 2 ], "no-constant-condition": [ 2 ], "no-control-regex": [ 2 ], "no-debugger": [ 2 ], "no-dupe-args": [ 2 ], "no-dupe-keys": [ 2 ], "no-duplicate-case": [ 2 ], "no-empty": [ 2 ], "no-empty-character-class": [ 2 ], "no-ex-assign": [ 2 ], "no-extra-boolean-cast": [ 2 ], "no-extra-semi": [ 2 ], "no-func-assign": [ 2 ], // this is for variable hoisting, not necessary if we use block scoped declarations // "no-inner-declarations": [ 2, "both" ], "no-invalid-regexp": [ 2 ], "no-irregular-whitespace": [ 2 ], "no-negated-in-lhs": [ 2 ], "no-reserved-keys": [ 0 ], "no-regex-spaces": [ 2 ], "no-sparse-arrays": [ 2 ], "no-unreachable": [ 2 ], "use-isnan": [ 2 ], "valid-typeof": [ 2 ], "valid-jsdoc": [ 2, { "requireReturnDescription": false }], // best practices "array-callback-return": [ 2 ], "block-scoped-var": [ 2 ], "complexity": [ 1 ], "consistent-return": [ 2 ], "curly": [ 2 ], "default-case": [ 2 ], "dot-notation": [ 2, { "allowKeywords": true } ], "eqeqeq": [ 2 ], "guard-for-in": [ 2 ], "no-alert": [ 2 ], "no-caller": [ 2 ], "no-case-declarations": [ 2 ], "no-div-regex": [ 2 ], "no-empty-function": [ 2 ], "no-empty-pattern": [ 2 ], "no-eq-null": [ 2 ], "no-eval": [ 2 ], "no-extend-native": [ 2 ], "no-extra-bind": [ 2 ], "no-extra-label": [ 2 ], "no-fallthrough": [ 2 ], "no-floating-decimal": [ 2 ], "no-implicit-coercion": [ 2 ], "no-implied-eval": [ 2 ], "no-iterator": [ 2 ], "no-labels": [ 2 ], "no-lone-blocks": [ 2 ], "no-loop-func": [ 2 ], "no-magic-numbers": [ 0 ], "no-multi-spaces": [ 0 ], "no-native-reassign": [ 2 ], "no-new": [ 2 ], "no-new-func": [ 2 ], "no-new-wrappers": [ 2 ], "no-octal": [ 2 ], "no-octal-escape": [ 2 ], "no-param-reassign": [ 2 ], "no-proto": [ 2 ], "no-redeclare": [ 2 ], "no-return-assign": [ 2 ], "no-script-url": [ 2 ], "no-self-assign": [ 2 ], "no-self-compare": [ 2 ], "no-sequences": [ 2 ], "no-throw-literal": [ 2 ], "no-unmodified-loop-condition": [ 2 ], "no-unused-expressions": [ 2 ], "no-unused-labels": [ 2 ], "no-useless-call": [ 2 ], "no-useless-concat": [ 2 ], "no-void": [ 2 ], //"no-warning-comments": [ 1 ], // XXX still in development "no-with": [ 2 ], "wrap-iife": [ 2 ], "yoda": [ 2, "never" ], // strict mode "strict": [ 2, "global" ], // variables "no-var": [ 2 ], "no-catch-shadow": [ 2 ], "no-delete-var": [ 2 ], "no-shadow": [ 2 ], "no-shadow-restricted-names": [ 2 ], "no-undef": [ 2 ], "no-undef-init": [ 2 ], // "no-undefined": [ 2 ], "no-unused-vars": [ 2, { "vars": "all", "args": "none" } ], "no-use-before-define": [ 2, "nofunc" ], // node.js "callback-return": [ 2, [ "callback", "cb", "cb1", "cb2", "cb3", "next", "innerCb", "done" ]], "global-require": [ 2 ], "handle-callback-err": [ 2, "^.*(e|E)rr" ], "no-mixed-requires": [ 2 ], "no-new-require": [ 2 ], "no-path-concat": [ 2 ], "no-process-exit": [ 2 ], // stylistic // turn on the few on that aren't handled by JSCS. "consistent-this": [ 2, "self" ], "no-array-constructor": [ 2 ], "no-nested-ternary": [ 2 ], "no-new-object": [ 2 ], // es6 "no-class-assign": [ 2 ], "no-dupe-class-members": [ 2 ], "no-new-symbol": [ 2 ], "no-const-assign": [ 2 ] } }