/** @return {import("eslint").Linter.Config} */
module.exports = function (workspaceDirPath) {
  return {
    root: true,
    extends: ["next", "turbo"],
    plugins: ["simple-import-sort", "@typescript-eslint"],
    ignorePatterns: ["dist/", "playwright-report/"],
    globals: {
      React: true,
      JSX: true,
    },
    parserOptions: {
      tsconfigRootDir: workspaceDirPath,
      project: `${workspaceDirPath}/tsconfig.json`,
    },
    overrides: [
      {
        files: ["**/*.ts", "**/*.tsx"],
        parser: "@typescript-eslint/parser",
        plugins: ["@typescript-eslint"],
        extends: ["plugin:@typescript-eslint/recommended"],
        rules: {
          "@typescript-eslint/no-unused-vars": "error",
        },
      },
    ],
    rules: {
      "simple-import-sort/imports": "error",
      "simple-import-sort/exports": "error",
      "import/first": "error",
      "import/newline-after-import": "error",
      "import/no-duplicates": "error",
      "no-console": ["error", { allow: ["warn", "error", "info"] }],
      "no-unused-vars": "error",
    },
  };
};