50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import { defineConfig, globalIgnores } from "eslint/config";
|
|
import nextVitals from "eslint-config-next/core-web-vitals";
|
|
import nextTs from "eslint-config-next/typescript";
|
|
|
|
const eslintConfig = defineConfig([
|
|
...nextVitals,
|
|
...nextTs,
|
|
{
|
|
files: ["src/app/**/*.{ts,tsx}"],
|
|
ignores: ["src/app/api/**", "src/app/**/route.ts"],
|
|
rules: {
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
patterns: [
|
|
{
|
|
group: [
|
|
"@/data/repositories",
|
|
"@/data/repositories/*",
|
|
"@/data/repositories/**",
|
|
],
|
|
message:
|
|
"App UI should depend on stores or lib use-case helpers instead of repositories.",
|
|
},
|
|
{
|
|
group: [
|
|
"@/data/storage",
|
|
"@/data/storage/*",
|
|
"@/data/storage/**",
|
|
],
|
|
message:
|
|
"App UI should not access storage directly; move persistence behind lib or stores.",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
},
|
|
// Override default ignores of eslint-config-next.
|
|
globalIgnores([
|
|
// Default ignores of eslint-config-next:
|
|
".next/**",
|
|
"out/**",
|
|
"build/**",
|
|
"next-env.d.ts",
|
|
]),
|
|
]);
|
|
|
|
export default eslintConfig;
|