{
    "parser": "@babel/eslint-parser",
    "rules": {
        "prettier/prettier": "error",
        "no-console": "warn",
        "react/prop-types": 1,
        "react/display-name": [0, { "ignoreTranspilerName": true }],
        "react-hooks/exhaustive-deps": "warn", // Checks effect dependencies
        "no-prototype-builtins": "off",
        "jam3/no-sanitizer-with-danger": 2,
        "react/jsx-no-target-blank": [0, {
            "enforceDynamicLinks": "never"
        }]
    },
    "env": {
        "browser": true,
        "es6": true,
        "jest": true,
        "node": true
    },
    "globals": {
        "expect": true,
        "__non_webpack_require__": true,
        "logger": "readonly",
        "AppCallbacks": "readonly"
    },
    "extends": ["eslint:recommended", "plugin:react/recommended"],
    "parserOptions": {
        "sourceType": "module",
        "ecmaFeatures": {
            "experimentalObjectRestSpread": true,
            "jsx": true
        },
        "babelOptions": {
            "configFile": "./babel.config.js"
        },
        "ecmaVersion": 6
    },
    "plugins": ["babel", "react", "react-hooks", "prettier", "jam3"],
    "settings": {
        "react": {
            "createClass": "createReactClass",
            "pragma": "React",
            "version": "detect"
        },
        "propWrapperFunctions": [
            "forbidExtraProps",
            { "property": "freeze", "object": "Object" },
            { "property": "myFavoriteWrapper" }
        ],
        "linkComponents": ["Hyperlink", { "name": "Link", "linkAttribute": "to" }]
    }
}
