chore(architecture): enforce app data boundaries
This commit is contained in:
@@ -5,6 +5,37 @@ 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:
|
||||
|
||||
Reference in New Issue
Block a user