Files
gridpilot.gg/core/eslint-rules/domain-no-application.js
2026-01-16 11:51:12 +01:00

38 lines
872 B
JavaScript

module.exports = {
meta: {
type: 'problem',
docs: {
description: 'Enforce that Core Domain does not depend on Application layer',
category: 'Architecture',
recommended: true,
},
fixable: null,
schema: [],
messages: {
forbiddenImport: 'Domain layer should not depend on Application layer. Forbidden import from "{{source}}".',
},
},
create(context) {
const filename = context.getFilename();
const isDomainFile = filename.includes('/domain/');
if (!isDomainFile) return {};
return {
ImportDeclaration(node) {
const source = node.source.value;
if (source.includes('/application/')) {
context.report({
node,
messageId: 'forbiddenImport',
data: {
source,
},
});
}
},
};
},
};