feat: enforce frontend architecture boundaries
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
/** @type {import("dependency-cruiser").IConfiguration} */
|
||||
module.exports = {
|
||||
forbidden: [
|
||||
{
|
||||
name: "domain-is-framework-neutral",
|
||||
severity: "error",
|
||||
from: { path: "^src/domain" },
|
||||
to: {
|
||||
path: "^(src/(application|presentation|adapters|bootstrap)|react|react-dom|@tanstack)",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "application-does-not-know-concrete-runtime",
|
||||
severity: "error",
|
||||
from: { path: "^src/application" },
|
||||
to: {
|
||||
path: "^(src/(presentation|adapters|bootstrap)|react|react-dom|@tanstack)",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "presentation-does-not-know-adapters",
|
||||
severity: "error",
|
||||
from: { path: "^src/presentation" },
|
||||
to: { path: "^(src/(adapters|bootstrap)|@tanstack)" },
|
||||
},
|
||||
{
|
||||
name: "adapters-do-not-know-presentation",
|
||||
severity: "error",
|
||||
from: { path: "^src/adapters" },
|
||||
to: { path: "^src/(presentation|bootstrap)" },
|
||||
},
|
||||
{
|
||||
name: "no-circular-dependencies",
|
||||
severity: "error",
|
||||
from: {},
|
||||
to: { circular: true },
|
||||
},
|
||||
],
|
||||
options: {
|
||||
doNotFollow: { path: "node_modules" },
|
||||
exclude: {
|
||||
path: "^(dist|artifacts|tests/fixtures)",
|
||||
},
|
||||
enhancedResolveOptions: {
|
||||
exportsFields: ["exports"],
|
||||
conditionNames: ["import", "require", "node", "default"],
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user