{ "root": true, "extends": [ "standard", "plugin:react/recommended" ], "rules": { "semi": ["error", "always"], "no-use-before-define": "off", "no-case-declarations": "off" }, "globals": { "Application": true, "angular": true, "Fablab": true, "moment": true, "_": true, "Humanize": true, "GTM": true, "$": true, "KeyboardEvent": true }, "plugins": ["html-erb", "fabmanager"], "overrides": [ { "files": ["**/*.ts", "**/*.tsx"], "env": { "browser": true, "es6": true }, "extends": [ "plugin:react/recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2018, "sourceType": "module", "project": "./tsconfig.json" }, "plugins": ["@typescript-eslint", "react"], "rules": { "react/prop-types": "off", "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off" } }, { "files": ["app/frontend/src/javascript/components/**/*.tsx"], "rules": { "import/no-default-export": "error", "import/no-unused-modules": "error", "fabmanager/component-class-named-as-component": ["error", { "ignoreAbstractKeyword": true }], "fabmanager/component-named-like-file": "error", "fabmanager/component-documentation": "warn", "fabmanager/component-methods-documentation": "warn", "fabmanager/no-bootstrap": "error", "fabmanager/no-utilities": "error", "fabmanager/scoped-translation": ["error", { "ignoreAbstractKeyword": false }] } }, { "files": ["app/frontend/src/javascript/models/**/*.ts"], "rules": { "camelcase": "off" } }, { "files": ["test/**/*"], "plugins": ["jest"], "env": { "jest/globals": true } } ], "settings": { "react": { "version": "detect" } } }