@addon24/eslint-config
Version:
ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types
48 lines (41 loc) • 1.21 kB
JavaScript
const enforceDtoFromEntityMethodRule = {
meta: {
type: "problem",
docs: {
description: "Entity-DTOs müssen fromEntity-Methoden bereitstellen",
category: "Architecture",
recommended: true,
},
schema: [],
messages: {
missingFromEntityMethod: "Entity-DTO-Klasse '{{dtoName}}' muss eine statische fromEntity-Methode bereitstellen",
},
},
create(context) {
const filename = context.getFilename();
// Nur für Entity-DTOs anwenden
const isEntityDtoFile = filename.includes("/dto/Entity/");
if (!isEntityDtoFile) {
return {};
}
return {
ClassDeclaration(node) {
const className = node.id.name;
// Prüfe auf fromEntity-Methode
const fromEntityMethod = node.body.body.find(member =>
member.type === "MethodDefinition" &&
member.static === true &&
member.key.name === "fromEntity"
);
if (!fromEntityMethod) {
context.report({
node: node.id,
messageId: "missingFromEntityMethod",
data: { dtoName: className },
});
}
},
};
},
};
export default enforceDtoFromEntityMethodRule;