{
    // Configuration for JavaScript files
    "extends": [
      "airbnb-base",
      "plugin:prettier/recommended"
    ],
    "rules": {
      "prettier/prettier": [
        "error",
        {
          "singleQuote": true,
          "endOfLine": "auto"
        }
      ]
    },
    "overrides": [
      // Configuration for TypeScript files
      {
        "files": ["**/*.ts", "**/__tests__/*.test.ts"],
        "plugins": [
          "@typescript-eslint",
          "unused-imports",
          "simple-import-sort"
        ],
        "extends": [
          "airbnb-typescript",
          "plugin:prettier/recommended"
        ],
        "parserOptions": {
          "project": "./tsconfig.json"
        },
        "rules": {
          "prettier/prettier": [
            "error",
            {
              "singleQuote": true,
              "endOfLine": "auto"
            }
          ],
          "@typescript-eslint/comma-dangle": "off", // Avoid conflict rule between Eslint and Prettier
          "@typescript-eslint/consistent-type-imports": "error", // Ensure `import type` is used when it's necessary
          "import/prefer-default-export": "off", // Named export is easier to refactor automatically
          "simple-import-sort/imports": "error", // Import configuration for `eslint-plugin-simple-import-sort`
          "simple-import-sort/exports": "error", // Export configuration for `eslint-plugin-simple-import-sort`
          "@typescript-eslint/no-unused-vars": "off",
          "react/jsx-filename-extension": "off", // Gives error
          "unused-imports/no-unused-imports": "error",
          "unused-imports/no-unused-vars": [
            "error",
            { "argsIgnorePattern": "^_" }
          ]
        }
      }
    ]
  }
  