{ "env": { "es6": true, }, "parserOptions": { "ecmaVersion": 2017, "sourceType": "module", }, "settings": { "flowtype": { "onlyFilesWithFlowAnnotation": true, }, }, "plugins": [ "babel", "flowtype", "import", "promise", "you-dont-need-lodash-underscore", ], "rules": { "arrow-body-style": [ "error", "as-needed", ], "arrow-spacing": "error", "class-methods-use-this": "error", "comma-dangle": [ "error", { "arrays": "always-multiline", "exports": "always-multiline", "functions": "always-multiline", "imports": "always-multiline", "objects": "always-multiline", }, ], "consistent-this": "off", "constructor-super": "error", "import/default": "error", "import/export": "error", "import/extensions": [ "error", "never", ], "import/first": "error", "generator-star-spacing": "error", "import/max-dependencies": [ "error", { "max": 30, }, ], "import/named": "error", "new-cap": "off", "babel/new-cap": "error", "import/newline-after-import": "error", "import/no-absolute-path": "error", "babel/no-await-in-loop": "error", "no-class-assign": "error", "no-confusing-arrow": [ "error", {"allowParens": true}, ], "no-constant-condition": "error", "no-const-assign": "error", "import/no-deprecated": "error", "no-dupe-class-members": "error", "no-duplicate-imports": "error", "no-empty-pattern": "error", "babel/no-invalid-this": "error", "no-loop-func": "off", "no-magic-numbers": [ "warn", { "enforceConst": true, "ignore": [0, 1], "ignoreArrayIndexes": true, }, ], "no-mixed-requires": "error", "no-multi-spaces": "error", "import/no-mutable-exports": "error", "import/no-named-default": "error", "import/no-namespace": "error", "no-new-symbol": "error", "import/no-unresolved": [ "error", { "amd": true, "commonjs": true, "ignore": [ "build/locales/getLocales$", "js/render/prerenderSimple$", ], }, ], "no-param-reassign": "error", "no-return-await": "error", "no-template-curly-in-string": "error", "no-this-before-super": "error", "no-useless-concat": "error", "no-useless-constructor": "error", "no-var": "error", "import/no-webpack-loader-syntax": "error", "object-shorthand": "error", "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "error", "require-await": "error", "require-yield": "error", // TODO: Implement a version more tailored to our needs. // "sort-imports": "error", "strict": [ "error", "never", ], "template-curly-spacing": "error", "yield-star-spacing": "error", // Promises. "promise/always-return": "error", "promise/catch-or-return": "error", "promise/param-names": "error", "promise/no-return-wrap": "error", // Flow. "flowtype/boolean-style": "error", "flowtype/define-flow-type": "error", "flowtype/delimiter-dangle": [ "error", "always-multiline", ], "flowtype/no-dupe-keys": "error", "flowtype/no-primitive-constructor-types": "error", "flowtype/object-type-delimiter": "error", "flowtype/require-parameter-type": [ "error", { "excludeArrowFunctions": "expressionsOnly", }, ], "flowtype/require-return-type": "error", "flowtype/require-valid-file-annotation": [ "error", "never", { "annotationStyle": "block", }, ], "flowtype/semi": "error", "flowtype/sort-keys": [ "error", "asc", { "caseSensitive": true, "natural": true, }, ], "flowtype/space-after-type-colon": "error", "flowtype/space-before-generic-bracket": "error", "flowtype/space-before-type-colon": "error", "flowtype/type-id-match": "error", "flowtype/union-intersection-spacing": "error", "flowtype/use-flow-type": "error", // Lo-Dash "lodash/prefer-startswith": "off", "lodash/prefer-includes": "off", "you-dont-need-lodash-underscore/assign": "error", "you-dont-need-lodash-underscore/concat": "error", "you-dont-need-lodash-underscore/each": "error", "you-dont-need-lodash-underscore/fill": "error", "you-dont-need-lodash-underscore/find-index": "error", "you-dont-need-lodash-underscore/index-of": "error", "you-dont-need-lodash-underscore/is-nan": "error", "you-dont-need-lodash-underscore/join": "error", "you-dont-need-lodash-underscore/keys": "error", "you-dont-need-lodash-underscore/last-index-of": "error", "you-dont-need-lodash-underscore/repeat": "error", "you-dont-need-lodash-underscore/reverse": "error", "you-dont-need-lodash-underscore/size": "error", "you-dont-need-lodash-underscore/to-lower": "error", "you-dont-need-lodash-underscore/to-upper": "error", "you-dont-need-lodash-underscore/trim": "error", }, }