{ "env": { "browser": true, "es2021": true, "node": true }, "globals": { "$": "readonly", "jQuery": "readonly", "html2canvas": "readonly", "ClipboardItem": "readonly", "grecaptcha": "readonly" }, "ignorePatterns": [ "backend/__tests__/**/*", "backend/setup-tests.ts", "backend/jest.config.ts", "**/*.css", "**/*.scss", "frontend/static/js/*" ], "extends": [ "eslint:recommended", "plugin:json/recommended", "plugin:import/recommended", "plugin:import/typescript", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "prettier" // "plugin:@typescript-eslint/recommended-requiring-type-checking" // "plugin:@typescript-eslint/strict" ], "plugins": ["json", "require-path-exists", "@typescript-eslint"], "rules": { "json/*": ["error"], "indent": ["off"], "no-empty": ["error", { "allowEmptyCatch": true }], "no-var": 2, "no-duplicate-imports": ["error"], "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-var-requires": "off", // "@typescript-eslint/no-floating-promises": "error" // consider adding these // "@typescript-eslint/strict-boolean-expressions": "warn", // "import/default": "off", "import/no-unresolved": [ "error", { "ignore": ["^./constants/firebase-config$"] } ], "import/no-duplicates": "off" }, "settings": { "import/resolver": { "typescript": { "alwaysTryTypes": true, "project": ["frontend/tsconfig.json", "backend/tsconfig.json"] }, "node": true } }, "overrides": [ { // enable the rule specifically for TypeScript files "files": ["*.ts", "*.tsx"], "rules": { // "@typescript-eslint/strict-boolean-expressions": [ // "error", // { // "allowString": false // } // ], "@typescript-eslint/explicit-function-return-type": ["error"], "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-function": "error", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^(_|e|event)", "varsIgnorePattern": "^_" } ], "@typescript-eslint/no-var-requires": "error", "@typescript-eslint/no-this-alias": "off", "@typescript-eslint/no-misused-promises": [ "error", { "checksVoidReturn": false } ], "@typescript-eslint/promise-function-async": "warn" // "@typescript-eslint/no-unnecessary-condition": "error" TODO ADD THIS }, "parserOptions": { "ecmaVersion": 12, "sourceType": "module", "project": "**/tsconfig.json" } }, { "files": ["backend/**/*.ts"], "rules": { "eqeqeq": "error" } } ] }