{ "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:require-path-exists/recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" // "plugin:@typescript-eslint/recommended-requiring-type-checking" // "plugin:@typescript-eslint/strict" ], "plugins": ["json", "require-path-exists", "@typescript-eslint"], "rules": { "json/*": ["error"], "indent": ["off"], "linebreak-style": ["error", "unix"], "curly": ["error", "multi-line"], "quotes": [ "error", "double", { "allowTemplateLiterals": true, "avoidEscape": true } ], "semi": ["error", "always"], "no-empty": ["error", { "allowEmptyCatch": true }], "no-var": 2, "require-path-exists/notEmpty": 2, "require-path-exists/tooManyArguments": 2, "require-path-exists/exists": [ 2, { "extensions": [ "", ".js", ".ts", ".tsx", ".es.ts", ".tsx", ".json5", ".es", ".es6", ".coffee" ] } ], "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", }, "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" } } ] }