42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import nextPlugin from "@next/eslint-plugin-next";
|
|
import reactPlugin from "eslint-plugin-react";
|
|
import hooksPlugin from "eslint-plugin-react-hooks";
|
|
import tseslint from "typescript-eslint";
|
|
import js from "@eslint/js";
|
|
|
|
/**
|
|
* Mintel Next.js ESLint Configuration (Flat Config)
|
|
*
|
|
* This configuration replaces the legacy 'eslint-config-next' which
|
|
* relies on @rushstack/eslint-patch and causes issues in ESLint 9.
|
|
*/
|
|
export const nextConfig = tseslint.config(
|
|
{
|
|
plugins: {
|
|
"react": reactPlugin,
|
|
"react-hooks": hooksPlugin,
|
|
"@next/next": nextPlugin,
|
|
},
|
|
languageOptions: {
|
|
globals: {
|
|
// Add common browser/node globals if needed,
|
|
// though usually handled by base configs
|
|
},
|
|
},
|
|
rules: {
|
|
...reactPlugin.configs.recommended.rules,
|
|
...hooksPlugin.configs.recommended.rules,
|
|
...nextPlugin.configs.recommended.rules,
|
|
...nextPlugin.configs["core-web-vitals"].rules,
|
|
"react/react-in-jsx-scope": "off",
|
|
"react/no-unescaped-entities": "off",
|
|
"@next/next/no-img-element": "warn",
|
|
},
|
|
settings: {
|
|
react: {
|
|
version: "detect",
|
|
},
|
|
},
|
|
}
|
|
);
|