{
    "parser": "@typescript-eslint/parser",
    "extends": [
        "eslint:recommended",
        "airbnb-base",
        "plugin:@typescript-eslint/recommended",
        "prettier",
        "prettier/@typescript-eslint"
    ],
    "ignorePatterns": [
        "**/compiled/*.json",
        "**/compiled/*.js"
    ],
    "rules": {
        "@typescript-eslint/explicit-module-boundary-types": "off",
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/no-var-requires": "off",
        "@typescript-eslint/ban-ts-comment": ["error", {
            "ts-ignore": "allow-with-description"
        }],
        "camelcase": "off",
        "linebreak-style": "off",
        "arrow-parens": ["error", "as-needed"],
        "strict": "off",
        "no-console": "off",
        "no-use-before-define": "off",
        "no-param-reassign": "off",
        "no-unused-expressions": "off",
        "lines-between-class-members": "off",
        "import/no-dynamic-require": "off",
        "valid-jsdoc": [
            2,
            {
                "prefer": {
                    "return": "returns"
                }
            }
        ],
        "import/no-extraneous-dependencies": 0,
        "import/no-unresolved": [
            "error",
            {
                "ignore": [
                    "nrfconnect/.*",
                    "pc-ble-driver-js",
                    "pc-nrfjprog-js",
                    "serialport",
                    "usb",
                    "nrf-device-setup",
                    "electron"
                ]
            }
        ],
        "import/extensions": ["off"],
        "no-undef": 1,
        "no-unused-vars": "off",
        "prettier/prettier": "error"
    },
    "overrides": [
        {
            "files": ["*.d.ts"],
            "rules": {
                "max-classes-per-file": "off",
                "react/prefer-stateless-function": "off",
                "@typescript-eslint/no-explicit-any": "off"
            }
        },
        {
            "files": ["*.ts", "*.tsx"],
            "rules": {
                "default-case": "off",
                "consistent-return": "off",
                "react/prop-types": "off"
            }
        }
    ],
    "plugins": ["import", "prettier"],
    "env": {
        "es6": true,
        "browser": true,
        "node": true,
        "jasmine": true,
        "jest": true
    },
    "settings": {
        "import/resolver": {
            "node": {
                "extensions": [".jsx", ".tsx", ".js", ".ts"]
            }
        }
    }
}
