module.exports = {
  parser: "@typescript-eslint/parser",
  parserOptions: {
    project: "./tsconfig.json",
    sourceType: "module",
  },
  plugins: ["@typescript-eslint", "prettier"],
  env: {
    node: true,
    mocha: true,
    es6: true,
  },
  extends: [
    "airbnb-typescript",
    "airbnb/hooks",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking",
  ],
  globals: {
    Symbol: true,
    Atomics: "readonly",
    SharedArrayBuffer: "readonly",
  },
  ignorePatterns: ["node_modules/", "*.d.ts"],
  rules: {
    "consistent-return": "warn",
    "max-len": ["warn", 500],
    "object-curly-newline": "off",
    "global-require": "warn",
    "no-mixed-operators": "off",
    "react/jsx-props-no-spreading": "off",
    "jsx-a11y/anchor-is-valid": "off",
    "import/prefer-default-export": "off",
    "@typescript-eslint/no-use-before-define": "off",
    "no-underscore-dangle": "off",
    "no-param-reassign": "off",
    "no-plusplus": "off",
    "react/prop-types": "off",
    "@typescript-eslint/no-unsafe-call": "off",
    "no-useless-escape": "off",
    "default-case": "off",
    "@typescript-eslint/no-unused-expressions": "off",
    "@typescript-eslint/no-unsafe-assignment": "off",
    "@typescript-eslint/no-unsafe-member-access": "off",
    "@typescript-eslint/restrict-plus-operands": "off",
    "react-hooks/exhaustive-deps": "off",
    "react/no-find-dom-node": "off",
    "no-shadow": "off",
    "@typescript-eslint/quotes": "off",
    "spaced-comment": "off",
    "eol-last": "off",
    "import/newline-after-import": "off",
    "@typescript-eslint/indent": "off",
    "template-tag-spacing": "off",
    "comma-dangle": "off",
  },
};
