diff --git a/package-lock.json b/package-lock.json index e28622c70..6fdec9b24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,6 @@ "lint-staged": "^15.2.7", "prettier": "^3.2.5", "storybook-addon-pseudo-states": "^9.1.10", - "ts-node": "^10.9.2", "turbo": "^2.0.4", "typescript": "^5.6.3" }, @@ -21514,6 +21513,7 @@ "@typescript-eslint/eslint-plugin": "^8.44.1", "@typescript-eslint/parser": "^8.44.1", "@vercel/style-guide": "^6.0.0", + "eslint-config-next": "^16.0.5", "eslint-config-prettier": "^10.1.8", "eslint-config-turbo": "^2.6.1", "eslint-plugin-only-warn": "^1.1.0", @@ -22365,6 +22365,7 @@ "playwright": "^1.54.1", "storybook": "^9.1.10", "storybook-addon-pseudo-states": "^9.1.10", + "ts-node": "^10.9.2", "tsup": "^8.1.0", "typescript": "^5.6.3", "vitest": "^3.2.4", diff --git a/packages/eslint-config/next.js b/packages/eslint-config/next.js index 14354b5cb..8e3fcb15d 100644 --- a/packages/eslint-config/next.js +++ b/packages/eslint-config/next.js @@ -1,13 +1,9 @@ import reactInternal from "./react-internal.js"; -import vercelNext from "@vercel/style-guide/eslint/next"; -import { FlatCompat } from "@eslint/eslintrc"; import tsPlugin from "@typescript-eslint/eslint-plugin"; import tsParser from "@typescript-eslint/parser"; import globals from "globals"; import { join } from "path"; -const compat = new FlatCompat(); - /** * @param {{ tsconfigRootDir: string, tsconfigName?: string }} options * @returns {import("eslint").Config[]} @@ -15,7 +11,28 @@ const compat = new FlatCompat(); export default function nextConfig({ tsconfigRootDir, tsconfigName = "tsconfig.lint.json" } = {}) { return [ ...reactInternal, - ...compat.config(vercelNext), + { + files: ["**/*.{ts,tsx}"], + plugins: { "@typescript-eslint": tsPlugin }, + languageOptions: { + parser: tsParser, + parserOptions: { + project: join(tsconfigRootDir, tsconfigName), + tsconfigRootDir, + }, + globals: { + ...globals.browser, + ...globals.node, + }, + }, + rules: { + ...tsPlugin.configs.recommended.rules, + ...tsPlugin.configs["recommended-requiring-type-checking"].rules, + "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], + "no-unused-vars": "off", + "@typescript-eslint/triple-slash-reference": "off", + }, + }, { files: ["**/*.{ts,tsx}"], plugins: { "@typescript-eslint": tsPlugin }, diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 748e56aad..584c47348 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -9,9 +9,9 @@ "react-internal.js" ], "devDependencies": { - "@vercel/style-guide": "^6.0.0", "eslint-config-turbo": "^2.6.1", "eslint-config-prettier": "^10.1.8", + "eslint-config-next": "^16.0.5", "eslint-plugin-only-warn": "^1.1.0", "@typescript-eslint/parser": "^8.44.1", "@typescript-eslint/eslint-plugin": "^8.44.1",