{ "env": { "es6": true, "browser": true, "mocha": true, "node": true, "jest": true }, "parser": "babel-eslint", "root": true, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:react-hooks/recommended", "plugin:import/recommended", "plugin:import/typescript", "plugin:jsx-a11y/recommended", "prettier" ], "plugins": ["no-only-tests"], "globals": { "Promise": true, "window": true, "$": true, "ga": true, "jQuery": true, "router": true }, "settings": { "react": { "version": "16.4.2" } }, "rules": { "import/named": "error", "import/no-named-as-default": "off", "import/no-named-as-default-member": "off", "import/order": "error", "import/no-cycle": [2, { "maxDepth": 2 }], "react/prop-types": "off", "no-only-tests/no-only-tests": "error" }, "overrides": [ { "files": ["**/*.ts?(x)"], "parser": "@typescript-eslint/parser", "parserOptions": { "project": [ "./tsconfig.json", "./config/tsconfig.json", "./tools/ui-components/tsconfig.json", "./utils/tsconfig.json", "./web/tsconfig.json", "./curriculum-server/tsconfig.json" ] }, "extends": [ "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking" ], "plugins": ["@typescript-eslint"], "rules": { "import/named": 0, "@typescript-eslint/naming-convention": [ "error", { "selector": "default", "format": ["camelCase"], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": [ "classProperty", "objectLiteralProperty", "typeProperty", "classMethod", "objectLiteralMethod", "typeMethod", "accessor", "enumMember" ], "format": null, "modifiers": ["requiresQuotes"] }, { "selector": "variable", "format": ["camelCase", "UPPER_CASE", "PascalCase"], "leadingUnderscore": "allowSingleOrDouble", "trailingUnderscore": "allow" }, { "selector": "typeLike", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]|[a-zA-Z]Type$", "match": false } }, { "selector": "typeProperty", "format": ["camelCase", "PascalCase"] }, { "selector": "objectLiteralProperty", "format": ["camelCase", "PascalCase"], "leadingUnderscore": "allowSingleOrDouble" }, { "selector": "function", "format": ["camelCase", "PascalCase"] }, { "selector": "enumMember", "format": ["PascalCase"] } ] } }, { "files": [ "./tools/ui-components/**/*.test.[jt]s?(x)", "./client/**/*.test.[jt]s?(x)" ], "extends": [ "plugin:testing-library/react", "plugin:jest-dom/recommended" ], "rules": { "import/named": 2 } }, { "files": ["cypress/**/*.js"], "globals": { "cy": true, "Cypress": true } }, { "files": ["web/**/*.tsx"], "extends": ["plugin:react/jsx-runtime"] } ] }