{ "root": true, "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "functional", "import"], "extends": [ "eslint:recommended", "plugin:promise/recommended", "plugin:import/typescript", "plugin:functional/lite", "plugin:functional/stylistic", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking" ], "env": { "es2021": true }, "overrides": [ { "files": ["*.ts"], "rules": { "@typescript-eslint/explicit-function-return-type": "error" } } ], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module", "project": ["./tsconfig.json"] }, "rules": { "functional/no-expression-statement": "off", "require-await": "warn", "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/restrict-template-expressions": "warn", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unsafe-argument": "warn", "@typescript-eslint/ban-types": [ "error", { "extendDefaults": true, "types": { "{}": false } } ], "no-console": ["warn", { "allow": ["warn", "error"] }], "functional/no-return-void": "off", "import/order": [ "error", { "groups": [ "builtin", "external", "internal", "parent", "sibling", "index", "object", "type" ], "newlines-between": "always", "alphabetize": { "order": "asc", "caseInsensitive": true } } ], "functional/no-throw-statement": [ "error", { "allowInAsyncFunctions": true } ], "promise/always-return": ["error", { "ignoreLastCallback": true }] }, "settings": { "import/resolver": { "typescript": true, "node": true } } }