Eslintrc

Файл .eslintrc.json с рекомендуемым стилем для использовании в разработках #370 Wiki МИЭМ.

Edited
.eslintrc.json 3.99 KiB
{
    "env": {
        "commonjs": true,
        "es6": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:@typescript-eslint/recommended-requiring-type-checking"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2018,
        "project": "tsconfig.json",
		"tsconfigRootDir": "."
    },
    "plugins": ["@typescript-eslint"],
    "rules": {
        "@typescript-eslint/await-thenable" : ["error"],
        "@typescript-eslint/indent": [
            "error",
            4,
            {
                "SwitchCase": 1
            }
        ],
        "@typescript-eslint/member-delimiter-style": [
            "error",
            {
                "multiline": {
                    "delimiter": "none",
                    "requireLast": true
                },
                "singleline": {
                    "delimiter": "semi",
                    "requireLast": false
                }
            }
        ],
        "@typescript-eslint/method-signature-style": [
            "error",
            "property"
        ],
        "@typescript-eslint/naming-convention": [
            "error",
            {
                "selector": ["classProperty", "classMethod", "objectLiteralMethod"],
                "modifiers": ["private"],
                "leadingUnderscore": "require",
                "format": ["camelCase"]
            },
            {
                "selector": ["variable", "function", "parameter"],
                "leadingUnderscore": "forbid",
                "format": ["camelCase"]
            },
            {
                "selector": ["classProperty", "classMethod", "objectLiteralMethod"],
                "leadingUnderscore": "forbid",
                "format": ["camelCase"]
            },
            {
                "selector": ["variable"],
                "format": ["camelCase", "PascalCase"], // For global consts
                "modifiers": ["const"]
            },
            {
                "selector": ["class", "interface", "enum"],
                "format": ["PascalCase"]
            },
            {
                "selector": ["enumMember"],
                "format": ["UPPER_CASE"]
            }
        ],
        "@typescript-eslint/no-empty-function": [
            "error",
            {
                "allow": ["constructors"]
            }
        ],
        "@typescript-eslint/no-empty-interface": "error",
        "@typescript-eslint/no-explicit-any" : "error",
        "@typescript-eslint/no-extraneous-class": "error",
        "@typescript-eslint/no-for-in-array": "error",
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/no-misused-promises": "off",
        "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
        "@typescript-eslint/no-unsafe-assignment": 0,

        "arrow-spacing": [
            "error",
            {
                "before": true,
                "after": true
            }
        ],
        "comma-spacing":"error",
        "eol-last": "error",
        "key-spacing": [
            "error",
            {
                "beforeColon": false,
                "afterColon": true
            }
        ],
        "no-multiple-empty-lines" : [
            "error",
            {"max" : 2}
        ],
        "no-trailing-spaces": "error",
        "object-curly-spacing": [
            "error",
            "always"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "space-before-blocks": 2,
        "space-before-function-paren": [
            "error",
            {
            "anonymous": "never",
            "named": "never",
            "asyncArrow": "always"
            }
        ],
        "space-infix-ops":"error",
        "spaced-comment": [
            "warn",
            "always"
        ]
    }
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment