.eslintrc

Summary

Maintainability
Test Coverage
{
    "extends": [
        "airbnb",
        "prettier",
        "prettier/@typescript-eslint"
    ],
    "parser": "@typescript-eslint/parser",
    "plugins": [
        "@typescript-eslint",
        "prettier"
    ],
    "env": {
        "browser": true,
        "node": true,
        "jest": true
    },
    "globals": {
        "window": true,
        "document": true,
        "React": true,
        "electron": true,
        "localStorage": true,
        "Notification": true,
        "btoa": true,
        "describe": true,
        "test": true,
        "jest": true,
        "expect": true,
        "shallow": true,
        "sinon": true,
        "alert": true,
        "confirm": true,
        "gtag": true
    },
    "settings": {
        "import/resolver": "webpack",
        "react": {
            "version": "detect"
        }
    },
    "rules" : {
        "arrow-parens": ["error", "always"],
        "arrow-body-style": 0,
        "comma-dangle": ["error", "never"],
        "no-unused-expressions": ["error", { "allowTernary": true }],
        "radix": ["error", "as-needed"],
        "no-trailing-spaces": 0,
        "no-multi-spaces": 0,
        "object-curly-spacing": ["error", "always"],
        "global-require": 0,
        "no-confusing-arrow": 0,
        "linebreak-style": 0,
        "class-methods-use-this": 0,
        "newline-after-var": ["error"],
        "newline-before-return": ["error"],
        "no-underscore-dangle": 0,
        "no-plusplus": 0,

        "import/no-unresolved": [2, { "caseSensitive": false }],
        "import/prefer-default-export": 0,
        "import/no-named-as-default": 0,
        "import/no-extraneous-dependencies": 0,

        "react/jsx-closing-bracket-location": [2, { "location": "after-props" }],
        "react/jsx-curly-spacing": [2, "always"],
        "react/jsx-first-prop-new-line": 0,
        "react/jsx-indent": [2, 2],
        "react/jsx-indent-props": 0,
        "react/require-default-props": 0,
        "react/no-danger": 0,
        "react/jsx-filename-extension": 0,
        "react/no-did-mount-set-state": 0,
        "react/forbid-prop-types": 0,
        "react/destructuring-assignment": 0,
        "react/jsx-one-expression-per-line": 0,
        "react/jsx-tag-spacing": [2, {
            "closingSlash": "never",
            "beforeSelfClosing": "never",
            "afterOpening": "never",
            "beforeClosing": "never"
        }
        ],

        "jsx-a11y/no-static-element-interactions": 0,
        "jsx-a11y/anchor-has-content": 2,
        "jsx-a11y/label-has-for": 0,
        "jsx-a11y/anchor-is-valid": 0,
        "jsx-a11y/heading-has-content": 0,
        "jsx-a11y/no-autofocus": 0,

        "template-curly-spacing": "off",
        "indent": "off"
    },
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true
        }
    }
}