diff --git a/.eslintrc b/.eslintrc index 7cedd214..efda7197 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,7 +1,10 @@ { - "extends": "airbnb", + "extends": [ + "airbnb", + "plugin:flowtype/recommended" + ], "parser": "babel-eslint", - "plugins": ["jest"], + "plugins": ["jest", "flowtype"], "rules": { "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "react/forbid-prop-types": [1, { "forbid": ["object", "any"] }], @@ -25,7 +28,67 @@ "import/prefer-default-export": 0, "jsx-a11y/label-has-for": 0, "indent": ["error", 2], - "no-console": ["error", { "allow": ["warn", "error"] }] + "no-console": ["error", { "allow": ["warn", "error"] }], + "flowtype/boolean-style": [ + 2, + "boolean" + ], + "flowtype/define-flow-type": 1, + "flowtype/delimiter-dangle": [ + 2, + "never" + ], + "flowtype/generic-spacing": [ + 2, + "never" + ], + "flowtype/no-primitive-constructor-types": 2, + "flowtype/no-types-missing-file-annotation": 2, + "flowtype/no-weak-types": 2, + "flowtype/object-type-delimiter": [ + 2, + "comma" + ], + "flowtype/require-parameter-type": 2, + "flowtype/require-return-type": [ + 2, + "always", + { + "annotateUndefined": "never" + } + ], + "flowtype/require-valid-file-annotation": 2, + "flowtype/semi": [ + 2, + "always" + ], + "flowtype/space-after-type-colon": [ + 2, + "always" + ], + "flowtype/space-before-generic-bracket": [ + 2, + "never" + ], + "flowtype/space-before-type-colon": [ + 2, + "never" + ], + "flowtype/type-id-match": [ + 2, + "^([A-Z][a-z0-9]+)+Type$" + ], + "flowtype/union-intersection-spacing": [ + 2, + "always" + ], + "flowtype/use-flow-type": 1, + "flowtype/valid-syntax": 1 + }, + "settings": { + "flowtype": { + "onlyFilesWithFlowAnnotation": false + } }, "env": { "jest/globals": true,