42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
import { createRequire } from "node:module";
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const nextConfigRequire = createRequire(require.resolve("eslint-config-next"));
|
|
|
|
const nextPlugin = nextConfigRequire("@next/eslint-plugin-next");
|
|
const reactHooksPlugin = nextConfigRequire("eslint-plugin-react-hooks");
|
|
const tsParser = nextConfigRequire("@typescript-eslint/parser");
|
|
|
|
export default [
|
|
{
|
|
ignores: [".next/**", "node_modules/**", "out/**"]
|
|
},
|
|
{
|
|
files: ["**/*.{js,jsx,ts,tsx}"],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
ecmaFeatures: {
|
|
jsx: true
|
|
},
|
|
ecmaVersion: "latest",
|
|
sourceType: "module"
|
|
}
|
|
},
|
|
plugins: {
|
|
"@next/next": nextPlugin,
|
|
"react-hooks": reactHooksPlugin
|
|
},
|
|
rules: {
|
|
...nextPlugin.configs.recommended.rules,
|
|
...nextPlugin.configs["core-web-vitals"].rules,
|
|
...reactHooksPlugin.configs.recommended.rules
|
|
},
|
|
settings: {
|
|
next: {
|
|
rootDir: ["./"]
|
|
}
|
|
}
|
|
}
|
|
];
|