Skip to content
Snippets Groups Projects
.eslintrc 2.18 KiB
Newer Older
{
    "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
        }
    }