module.exports = {
    "env": {
        "browser": true,
        "es2021": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:react/recommended",
        "plugin:prettier/recommended"
    ],
    "overrides": [
        {
            "env": {
                "node": true
            },
            "files": [
                ".eslintrc.{js,cjs}"
            ],
            "parserOptions": {
                "sourceType": "script"
            }
        }
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint",
        "react",
        "prettier"
    ],
    "rules": {
        'react/jsx-use-react': 0, // React V17开始JSX已经不再需要引入React
        'react/react-in-jsx-scope': 0, // 同上
        'import/first': 0, // 消除绝对路径必须要在相对路径前引入，
        'no-mixed-spaces-and-tabs': 2, // 禁止空格和 tab 的混合缩进
        'no-debugger': 2, // 禁止有debugger
        'space-infix-ops': 2, // 要求操作符周围有空格
        'space-before-blocks': 2, // 要求语句块之前有空格
        '@typescript-eslint/explicit-function-return-type': 0, // 禁止函数必须要定义返回类型
        'react/display-name': 'off',
		'@typescript-eslint/no-explicit-any': ['off'],
		'@typescript-eslint/no-var-requires': ['off'],
		'@typescript-eslint/no-use-before-define': ['off'],
		'@typescript-eslint/no-empty-function': ['off'],
		'@typescript-eslint/no-empty-interface': ['off'],
		'@typescript-eslint/no-unused-vars': ['off'],
		'@typescript-eslint/no-non-null-assertion': ['off'],
    }
}
