{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.json" }, "plugins": ["@typescript-eslint", "prettier", "no-null", "functional"], "extends": [ "standard-with-typescript", "prettier", "plugin:functional/external-typescript-recommended", "plugin:functional/recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking" ], "rules": { "no-param-reassign": "error", "no-shadow": "error", "prettier/prettier": "warn", "no-null/no-null": "error", "@typescript-eslint/ban-types": [ "error", { "types": { "null": null, "void": null } } ], "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-unsafe-argument": "error", "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/ban-ts-comment": "error", "@typescript-eslint/switch-exhaustiveness-check": "error", "@typescript-eslint/consistent-type-definitions": ["error", "type"], "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-redeclare": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/space-before-function-paren": [ "error", { "anonymous": "never", "named": "never", "asyncArrow": "always" } ], "@typescript-eslint/promise-function-async": "off", "functional/functional-parameters": "off", "functional/no-conditional-statements": [ "error", { "allowReturningBranches": true } ], "functional/no-expression-statements": [ "error", { "ignorePattern": "^(assert|(describe|test|expect|console)[^\\w])" } ] } }