Files
frontend/dependency-cruiser.cjs
T
ksv741 c97f62bd98 refactor: align frontend ownership boundaries
Close audit gaps across API drift, query policy, UI, and tests.
2026-09-06 18:20:05 +03:00

51 lines
1.1 KiB
JavaScript

module.exports = {
forbidden: [
{
name: "no-circular",
severity: "error",
from: {},
to: { circular: true },
},
{
name: "slices-must-use-public-api",
severity: "error",
from: {
path: "^src/(app|pages|features|entities|shared)/([^/]+)/",
},
to: {
path: "^src/(app|pages|features|entities|shared)/([^/]+)/(?!index\\.ts$)",
pathNot: "^src/$1/$2/",
},
},
{
name: "shared-must-not-depend-on-layers",
severity: "error",
from: { path: "^src/shared/" },
to: { path: "^src/(entities|features|pages|app)/" },
},
{
name: "entities-must-not-depend-on-higher-layers",
severity: "error",
from: { path: "^src/entities/" },
to: { path: "^src/(features|pages|app)/" },
},
{
name: "features-must-not-depend-on-higher-layers",
severity: "error",
from: { path: "^src/features/" },
to: { path: "^src/(pages|app)/" },
},
{
name: "pages-must-not-depend-on-app",
severity: "error",
from: { path: "^src/pages/" },
to: { path: "^src/app/" },
},
],
options: {
doNotFollow: { path: "node_modules" },
tsConfig: { fileName: "tsconfig.app.json" },
tsPreCompilationDeps: true,
},
};